我曾经提出过一个关于保持服务活动的问题,但是我没有找到解决方案,所以我有另一个更简单的问题。
Android文档中说,如果在低内存状态下使用START_STICKY启动服务,并且Android终止该服务,则将重新创建该服务,如果我没记错的话。
但是,这个服务会在一段时间后被杀死并从正在运行的任务中消失,但它没有被重新创建!我在我的手机上(Android 4.4.2)运行此服务,当屏幕开启时,它能够存活约20分钟,但当屏幕关闭时,它在约3或4分钟后就消失了......在我的平板电脑上(同样是Android 4.4.2),它的存活时间更长,大约为4或5个小时,然后又消失了(在不同的测试中,我得到了不同的结果)。我甚至在Android 5上进行了测试,结果与搭载Android 4.4.2的平板电脑相似。
我是否遗漏了什么?我认为只要我们使用return START_STICKY,服务就不会被销毁,直到我调用stopService。
以下是我的服务:
Android文档中说,如果在低内存状态下使用START_STICKY启动服务,并且Android终止该服务,则将重新创建该服务,如果我没记错的话。
但是,这个服务会在一段时间后被杀死并从正在运行的任务中消失,但它没有被重新创建!我在我的手机上(Android 4.4.2)运行此服务,当屏幕开启时,它能够存活约20分钟,但当屏幕关闭时,它在约3或4分钟后就消失了......在我的平板电脑上(同样是Android 4.4.2),它的存活时间更长,大约为4或5个小时,然后又消失了(在不同的测试中,我得到了不同的结果)。我甚至在Android 5上进行了测试,结果与搭载Android 4.4.2的平板电脑相似。
我是否遗漏了什么?我认为只要我们使用return START_STICKY,服务就不会被销毁,直到我调用stopService。
以下是我的服务:
public class MyService extends Service {
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
public void onDestroy() {
super.onDestroy();
}
}
抱歉我的英语不好 :)