我有一個服務,我需要檢查一段時間後它是否仍然在靜態上下文中運行。 [我注意到這種情況僅適用於Android奇巧]KitKat:退出主要活動後服務爲空
我所做的:
我的服務:
public class Servizio extends Service {
public static Service servizio;
[...Other things...]
@Override
public void onCreate() {
super.onCreate();
servizio = this;
scheduleMyAlarmToDoSomethingAfterSomeTime();
}
[...Other things...]
}
然後我啓動從主活動的服務的onCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
[...]
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ServizioUtility.toggleService(this, true);
[...]
}
然後我檢查一分鐘後它是否爲空(帶有警報由服務啓動的警報接收器。需要注意的是,接收器工作正常,下面的代碼被調用):
if (Servizio.servizio!=null) {// FIXME
[...]
//THIS IS NOT CALLED IN THE 2ND SCENARIO
}
有2個方案:
- 我跑的活動,等待啓動報警並Servizio.servizio不爲null。
- 我運行該活動,使用「殺死」它,等待警報接收器被調用,Servizio.servizio現在爲空。請注意,另一方面,該服務仍在運行(從設置 - >應用程序 - >運行菜單中進行檢查)。
第二種情況發生了什麼?
見類似的問題(與解決方案)http://stackoverflow.com/q/20636330/624109 – Muzikant
服務可能出現在設置 - > Apps->運行在運行,但它實際上沒有運行。您可以通過讓服務向SD寫入文件或實際檢查正在運行的進程來進行檢查。它沒有運行。 – 3c71
是的,它看起來並不是,實際上服務單例是空的。 –