我对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);
}
我将此BroadcastRecever替换为AlarmSerivce 在这里:
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);
}
这够了吗?
答案 0 :(得分:81)
一个简单的答案是 NO 。但是,您可以通过创建BroadCastReceiver
来实现此目的,该<action android:name="android.intent.action.BOOT_COMPLETED" />
将在启动设备完成时启动警报。
使用<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>
来捕获BroadCastReceiver类中的引导活动。
您需要在AndroidManifest.xml中添加以上行,如下所示,
{{1}}
答案 1 :(得分:4)
是的,即使重启后,您也可以使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"/>
答案 2 :(得分:0)
在某些手机中只添加
<action android:name="android.intent.action.Boot_COMPLETED" />
不起作用你还必须添加
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
以及之前的