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

    }
}