Android服务背景

时间:2014-12-26 11:38:54

标签: android android-intent

我有ActivitystartService()中使用一些参数调用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);  
        }
}

2 个答案:

答案 0 :(得分:0)

尝试使用intentService而不是service

答案 1 :(得分:0)

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

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