AlarmManager 在特定时间启动警报并关闭智能手机
AlarmManager start alarm at specific time and turn off smartphone
你好,如果我创建一个 alarmManager 并将其设置为特定时间并关闭我的智能手机,在重新启动后,应用程序可能会发出旧警报吗? (我的智能手机关机了)
我想知道是否可以轻松完成。
谢谢!
我是这样设置闹钟的:
AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, Try.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
am.set(AlarmManager.RTC_WAKEUP, TIME, pi);
AlarmManager
重启后不保持计划。您必须再次手动设置它。在Android中,可以通过接收信号BootComplete
事件,然后再次触发AlarmManager
。
首先,您应该在清单文件中声明您的接收器:
<!-- permission for using this event -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- declare your receiver -->
<receiver
android:name="BootCompleteReceiver"
android:enabled="true">
<intent-filter android:priority="100" >
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
这是 BootCompleteReceiver
的代码:
public class BootCompleteReceiver extends BroadcastReceiver {
private static final String TAG = "BootCompleteReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Log.e(TAG, "Received boot completed");
// trigger your alarm manager here
}
}
你好,如果我创建一个 alarmManager 并将其设置为特定时间并关闭我的智能手机,在重新启动后,应用程序可能会发出旧警报吗? (我的智能手机关机了) 我想知道是否可以轻松完成。 谢谢!
我是这样设置闹钟的:
AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, Try.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
am.set(AlarmManager.RTC_WAKEUP, TIME, pi);
AlarmManager
重启后不保持计划。您必须再次手动设置它。在Android中,可以通过接收信号BootComplete
事件,然后再次触发AlarmManager
。
首先,您应该在清单文件中声明您的接收器:
<!-- permission for using this event -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- declare your receiver -->
<receiver
android:name="BootCompleteReceiver"
android:enabled="true">
<intent-filter android:priority="100" >
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
这是 BootCompleteReceiver
的代码:
public class BootCompleteReceiver extends BroadcastReceiver {
private static final String TAG = "BootCompleteReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Log.e(TAG, "Received boot completed");
// trigger your alarm manager here
}
}