在Android上启动Alarm而不运行应用程序

在Android上启动Alarm而不运行应用程序,android,alarmmanager,alarm,Android,Alarmmanager,Alarm,我的想法是在我的应用程序中为特定日期设置警报,但我希望能够在设置的日期让警报响起,即使我的应用程序根本没有运行 我怎样才能做到这一点 提前谢谢 您需要创建一个onBoot广播接收器,这样当设备启动时,您的应用程序将获得设置警报的控制权。我会在设备启动时启动一个服务-该服务应该在时机成熟时处理警报 要使服务在启动时启动,您需要在AndroidManifest.xml <uses-permission android:name="android.permission.RECEIVE_BOOT_

我的想法是在我的应用程序中为特定日期设置警报,但我希望能够在设置的日期让警报响起,即使我的应用程序根本没有运行

我怎样才能做到这一点


提前谢谢

您需要创建一个onBoot广播接收器,这样当设备启动时,您的应用程序将获得设置警报的控制权。

我会在设备启动时启动一个服务-该服务应该在时机成熟时处理警报

要使服务在启动时启动,您需要在
AndroidManifest.xml

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

AlarmingService.class
是最终处理报警内容的服务的类名

AlarmingBroadcastreceiver将启动serivece AlarmingService.class,但是我如何从活动中告诉AlarmingBroadcastreceiver启动服务?从活动中,您不需要通过AlarmingBroadcastreceiver-您可以通过一个Ìcontent
startService()`-类似于BroadcastReceiver中的代码直接从活动中启动服务好的,假设我从MyActivity启动AlarmService.class。何时将执行onReceive方法!?这与服务在引导时自动启动有关
<receiver android:name="com.yourpackage.AlarmingBroadcastReceiver">  
    <intent-filter>  
        <action android:name="android.intent.action.BOOT_COMPLETED" />  
    </intent-filter>  
</receiver>
public class AlarmingBroadcastreceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent startServiceIntent = new Intent(context, AlarmingService.class);
        context.startService(startServiceIntent);
    }
}