我遇到了我的應用程序出現問題,我似乎無法弄清楚。Android服務未初始化設置中的變量
該應用程序具有一項服務,該服務在手機啓動時啓動,或者如果已停止,則在主要活動在所有其他操作完成之前運行時啓動。
在活動的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填充,其由settings.xml文件返回在getDisplay()的顯示的值。
但是,當我加載活動中的任何代碼時,它只會失敗並返回空值。我有一個調用DrawCanvas()的屏幕上的刷新按鈕;再次,如果我點擊刷新按鈕,它能夠正確地獲取所有變量並處理代碼。
我不明白爲什麼變量沒有在第一次運行時加載,但是當我點擊刷新按鈕時加載正確。
因此,如果我理解正確,我應該在示例中覆蓋的onServiceConnected方法的末尾調用WriteDisplay? – Sorean
是的,它不能是「靜態」。它必須是'Binder'子類的實例方法。你必須用'IBinder'參數來調用它。 – Michael
非常感謝! – Sorean