在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);
}
}