即使重新启动后,“警报pipe理器”仍然存在
我真的很陌生,我一直在研究闹钟。 如果当天有生日,我要报警。 我已经使用了警报pipe理器。 我很困惑,因为我已经读过它重新启动后清除。 我没有一个Android手机,所以我只是使用模拟器。
这是我的代码:
public void schedAlarm() { AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); Intent intent = new Intent(this, AlarmService.class); pendingIntent = PendingIntent.getBroadcast(this, contact.id, intent, PendingIntent.FLAG_ONE_SHOT); am.setRepeating(AlarmManager.RTC, timetoAlarm, nextalarm, pendingIntent); }
我做了这个BroadcastReceverreplaceAlarmSerivce在这里:
public void onReceive(Context context, Intent intent) { nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); CharSequence from = "It Birthday!"; CharSequence message =" Greet your friend."; PendingIntent contentIntent = PendingIntent.getActivity(context, 0, new Intent(), 0); Notification notif = new Notification(R.drawable.ic_launcher, "Birthday", System.currentTimeMillis()); notif.setLatestEventInfo(context, from, message, contentIntent); nm.notify(1, notif); }
这够了吗??
一个简单的答案是没有 。 但是,你可以通过创build一个BroadCastReceiver
来实现这个function,它将在引导完成时启动Alarm。
使用<action android:name="android.intent.action.BOOT_COMPLETED" />
来捕获BroadCastReceiver类中的启动活动。
您需要如下在AndroidManifest.xml中添加上面的行,
<receiver android:name=".AutoStartUp" android:enabled="true" android:exported="false" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
是的,即使重新启动,您也可以使AlarmManager工作。 也许这是最简单的方法:在你的AndroidManifest.xml中添加下面的代码:
<receiver android:name=".AlarmReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver>
不要忘记将AndroidManifest.xml的用户权限包含为:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
在一些手机只join
<action android:name="android.intent.action.Boot_COMPLETED" />
不工作,你也必须添加
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
与以前一样