我有Activity
在startService()
中使用一些参数调用onCreate()
。
该服务运行良好(我使用Timer
),但当我退出活动(onPause() or onDestroy()
)时,会发生的服务是重新创建!它调用onCreate然后使用null intent在onStartCommand()上调用! (正常)
那么我该怎样做才能追溯旧的意图?!
我认为有START_REDELIVER_INTENT
但是如何使用它!这是正确的方法吗?
PS:虽然extends
服务,为什么服务被杀?它取决于活动的生命周期=>谁再打电话给他?
public class MyService extends Service {
private static Timer timer = new Timer();
@Override
public void onCreate() {
Log.d(TAG, "onCreate");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if(intent != null){
Bundle bundle = intent.getExtras();
if (bundle != null)
{
timer.scheduleAtFixedRate(new Action(),15000 , 15000);
}
}
Action() {
timer = new Timer();
timer.scheduleAtFixedRate(new Action(),15000 , 15000);
}
}
答案 0 :(得分:0)
尝试使用intentService而不是service
答案 1 :(得分:0)
经过一些研究后,我找到了解决方案,对某些人来说可能很简单,所以阅读这个:START_STICKY和START_NOT_STICKY并且我们不会重新启动服务,我们应该返回onCommand方法START_NOT_STICKY
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//TODO
return START_NOT_STICKY ;
}