gpt4 book ai didi

java - Android 服务未从设置中初始化变量

转载 作者:搜寻专家 更新时间:2023-11-01 09:12:35 25 4
gpt4 key购买 nike

我的应用程序遇到了一个我似乎无法弄清楚的问题。

应用程序有一个服务,在手机启动时启动,或者如果它已停止,则在主 Activity 运行时启动,然后其他一切都完成。

在 Activity 的 onCreate 中我有:

serviceIntent.setClass(this, Service.class);
bindService(serviceIntent, mConnection, Context.BIND_AUTO_CREATE);
startService(serviceIntent);
WriteDisplay();

public void WriteDisplay(){
TextView t = (TextView)findViewById(R.id.tv1);
String strdisplay = Service.getDisplay();
t.setText(strdisplay);
}

在我的服务中:

    @Override 
public void onCreate(){
super.onCreate();
GetSettings();

}
public static String getDisplay() {
return display;
}

GetSettings 填充 getDisplay() 从 settings.xml 文件返回的显示值。

但是,当我在 Activity 中加载任何代码时,它只会失败并且只返回空值。

我在屏幕上有一个调用 DrawCanvas() 的刷新按钮;再次,如果我点击刷新按钮,它能够正确获取所有变量并处理代码。

我不明白为什么变量没有在 Activity 的第一次运行时加载,但是当我点击刷新按钮时加载正确。

最佳答案

绑定(bind)到服务是一个异步操作。您必须等到绑定(bind)完成,然后再调用服务方法。看看 ServiceConnection.onServiceConnected() 方法。它有一个 IBinder 参数。调用此方法时,您可以将 binder 转换为其实际类型并调用其方法。

这是开发绑定(bind)服务的指南:http://developer.android.com/guide/topics/fundamentals/bound-services.html

您应该仔细阅读它并以类似的方式实现您的服务。

关于java - Android 服务未从设置中初始化变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7196247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com