如何在设备重启时取消服务?

时间:2012-12-07 12:10:02

标签: android android-intent android-service

我在android中有两个关于服务通知的问题:

  1. 如果我选择重启设备,如何取消服务?

  2. 如果关闭设备并重新启动设备,如何保持服务正常运行?

2 个答案:

答案 0 :(得分:1)

您必须在清单文件中调用bootcompiled以重新创建服务。

见下面的代码:

<!-- To receive the Alarm Notification -->

    <receiver android:name=".RecreateTwoMonthAlarm" >         
        <intent-filter>             
            <action android:name="android.intent.action.BOOT_COMPLETED" /> 
            <category android:name="android.intent.category.HOME" />         
        </intent-filter>     
    </receiver> 

现在,如果您不想在设备重新启动时重新创建服务,那么只需在清单中定义接收器,而不需要任何BOOT_COMPLETED操作。

如下面的代码:

    <receiver android:name=".AlarmReceiverNotificationForTwoMonth" />

这是我的情况下的接收器。如果您想要同样的服务,那么您也可以这样做。

希望它会对你有所帮助。

答案 1 :(得分:0)

1)如果我选择重启设备,如何取消服务? 如果没有BOOT_COMLETED接收器,则无所事事。

2)如果关闭设备并重新启动设备,如何保持服务正常运行? 你应该创建一个接收器类:

public class StartupReceiver extends BroadcastReceiver {
     @Override
     public void onReceive(Context context, Intent intent) {
         context.startService(new Intent(context,YourService.class));
     }
}

并在清单文件中声明:

<receiver android:name=".StartupReceiver" >
   <intent-filter>
      <action android:name="android.intent.action.BOOT_COMPLETED" />
      <category android:name="android.intent.category.HOME" />
  </intent-filter>