Android: AlarmManager 会在关闭后被杀死吗

Android: Will AlarmManager gets killed after shutdown

我想知道我设置的闹钟在我关闭设备后是否会被破坏,或者它会保存日程状态并在用户重新打开设备时直接广播,只要预定的时间是在当前时间之前。

关机后会销毁。您应该实现一个 RECEIVE_BOOT_COMPLETED 广播接收器。通过这种方式,您将在设备关闭时在您的接收器中再次设置您的警报管理器。

当设备重新启动时获得警报管理器destroyed.you需要在启动完成后重新注册警报管理器

在您的清单中添加此权限

 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

并广播

<receiver
    android:name="your package name.MyBroadcast "
    android:enabled="true"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

创建广播接收器

public class MyBroadcast extends BroadcastReceiver {

private static final String LOG_TAG = "MyBroadcast ";

public MyBroadcast () {
}

@Override
public void onReceive(Context context, Intent intent) {

    if (intent != null) {
        String action = intent.getAction();

        switch (action) {
            case Intent.ACTION_BOOT_COMPLETED:

               // Register your alarm manager here

                break;
            default:
                break;
        }
    }
}

}

Android: AlarmManager 会在关机后被杀死吗?

回答:是

只要预定时间早于当前时间,当用户重新打开设备时,是否会保存预定状态并立即播放?

回答:否

解决方案:在 BOOT_COMPLETED 广播

上重新注册 AlarmManager