Android服务:如果智能手机重新启动,则启动并在应用程序被刷掉后运行

时间:2016-07-26 06:15:51

标签: android android-service

我有一个提供服务的应用。如果重新启动智能手机,则应启动此服务。无论如何,如果应用程序是在关闭期间启动的。如果应用程序被刷掉(杀死),应该重新启动(或仍然运行)应用程序。这项工作适用于使用Android 4.2的智能手机,但不适用于安装了Android 5.1的智能手机。

我从类中开始我的服务,派生自BroadcastReceiver:

@Override
public void onReceive(Context oContext, Intent oIntent)
{
  if (oIntent.getAction().equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED)) {
    Intent oNewIntent = new Intent(oContext, CarFinderService.class);
    // class can be anything which you want to start on bootup...
    oNewIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    oContext.startService(oNewIntent);
  }
}

这适用于Android 4.2。,但不适用于Android 5.1。我觉得这段代码还可以。或者不是?

如果服务在重新启动时启动或者应用程序被刷掉,我该怎么办?

我通过搜索网络找到了不同的东西。但是我发现了一个适用于Android 5.1的解决方案。

任何提示?

由于 汉斯

1 个答案:

答案 0 :(得分:0)

将此添加到5.1的清单:

<action android:name="android.intent.action.QUICKBOOT_POWERON" />

要将服务恢复到现场,请将其放入您的服务中:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    handleCommand(intent);
    // We want this service to continue running until it is explicitly
    // stopped, so return sticky.
    return START_STICKY;
}

这笔钱在START_STICKY