我有一个服务,我需要检查它是否仍在静态上下文中运行一段时间。 [我注意到这种情况只发生在 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 中的主 Activity 启动该服务:
@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
}
有两种情况:
- 我运行该 Activity ,等待警报启动,并且 Servizio.servizio 不为空。
- 我运行该 Activity ,使用“杀死”它,等待警报接收器被调用,Servizio.servizio现在为空。请注意,另一方面,该服务仍在运行(从“设置”->“应用程序”->“运行”菜单检查)。
第二种情况发生了什么?
最佳答案
我发现这是 Android KitKat 的问题,如果您想检查一下:
关于android - 奇巧 : Service is null after exiting main activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21073136/