Android 安卓服务后台

Android 安卓服务后台,android,android-intent,Android,Android Intent,我有一个活动,它在onCreate()中调用startService(),并带有一些参数。 该服务运行良好(我使用了一个计时器),但当我退出活动(onPause()或onDestroy())时,所发生的是该服务被重新创建!它调用onCreate然后调用onStartCommand(),意图为空!(正常) 那我该怎么做才能重新找回旧的意图 我认为有START\u REDELIVER\u INTENT但如何使用它!这条路对吗 PS:为什么服务被终止,尽管它扩展了服务?这是否取决于活动的生命周期=>所

我有一个
活动
,它在
onCreate()
中调用
startService()
,并带有一些参数。 该服务运行良好(我使用了一个
计时器
),但当我退出活动(
onPause()或onDestroy()
)时,所发生的是该服务被重新创建!它调用onCreate然后调用onStartCommand(),意图为空!(正常)
那我该怎么做才能重新找回旧的意图
我认为有
START\u REDELIVER\u INTENT
但如何使用它!这条路对吗

PS:为什么服务被终止,尽管它扩展了服务?这是否取决于活动的生命周期=>所以谁又给他打了电话

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而不是service

经过一些研究,我找到了解决方案,对一些人来说可能很简单,因此阅读以下内容:并且我们不会重新启动服务本身,我们应该返回onCommand方法START\u NOT\u STICKY

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

活动结束时,您是否已取消计时器?计时器在不同线程上运行可能导致此问题。尝试通过
您的_timer_对象在活动结束时取消计时器。Cancel()返回方法时在onStartCommand()中编写的代码。您是否返回“返回开始”。如果是,则服务将自行重新启动。你必须调用stopSelf()或stopService(Intent service)@VipinSharma,即使我退出了应用程序,计时器仍然工作!但也许在很短的时间内它就取消了,或者其他一些事情!我注意到,对象计时器也重新创建了!如何使一个实例始终运行?@Rollno1该服务不应自行重新启动!因为它有参数可供使用!