安卓服务背景



我有一个Activity,它用一些参数在onCreate()中调用startService()。服务运行良好(我使用Timer),但是当我退出活动(onPause() or onDestroy())时,发生的事情是重新创建服务!它调用 onCreate 然后 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);  
        }
}

尝试使用 intentService 而不是服务

经过一些研究,我找到了解决方案,对某些人来说可能很简单,所以通过阅读以下内容: START_STICKY和START_NOT_STICKY,并且我们不会重新启动服务本身,我们应该返回onCommand方法START_NOT_STICKY

        @Override
            public int onStartCommand(Intent intent, int flags, int startId) {
    //TODO
  return START_NOT_STICKY ;
    }

最新更新