Android:为什么系统重启后警报通知停止

标签 android android-manifest broadcastreceiver alarmmanager android-alarms

我正在开发一个应该每天发出五次警报的 android 应用程序:
- 每天的时间不是固定的
- 闹钟响起后,我会安排下一次闹钟。

我的问题是:警报通知工作 1 天然后停止,而且当设备重新启动两次时通知不起作用,我现在不知道是否有其他方法可以做到这一点,任何帮助都会非常感激!

代码: 我有调用广播接收器的功能

public static void Start_Notifying(Context context){             
    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(System.currentTimeMillis());
    cal.add(Calendar.HOUR_OF_DAY,hour);
    cal.add(Calendar.MINUTE, min);      
    Intent intent = new Intent(context,  OnetimeAlarmReceiver.class);
    intent.setAction("START_NOTIFYING");
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, notify.REQUEST_CODE, intent,0);
    AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis() , pendingIntent); 
    SaveAlarmManager(alarmManager, pendingIntent);

}

oneTimeAlarmReciever代码

public void onReceive(Context context, Intent intent) {     
    main_menu.con = context;                
    Notification notifyDetails;
    NotificationManager nm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
    notifyDetails = new Notification(R.drawable.icon,s1,System.currentTimeMillis());
    PendingIntent pendingIntent = PendingIntent.getActivity(context, REQUEST_CODE, new Intent(context, prayertimes.class), 0);
    notifyDetails.setLatestEventInfo(context,s2+ notify.prayName , s3, pendingIntent);
    notifyDetails.sound=Uri.parse(PlaySound());
    nm.notify(NOTIFICATION_ID, notifyDetails);                          
    main_menu.notify_me();
}

notify_me()的代码

static void notify_me() {               
    hour =pTime.num1;
    min =pTime.num2;                
    Start_Notifying(con);
}

在 list 文件中

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

<receiver class =".OnetimeAlarmReceiver" android:name="OnetimeAlarmReceiver">
    <intent-filter>
        <action android:name="START_NOTIFYING" />
        <action android:name="android.intent.action.BOOT_COMPLETED"> </action>
        <data android:mimeType="audio/ogg" />
    </intent-filter>
</receiver>

最佳答案

why did the Alarm notification stop after system reboot

因为警报计划在重新启动时被清除。如果您想让闹钟在重启后再次响起,您将需要实现一个响应 RECEIVE_BOOT_COMPLETED 广播的 BroadcastReceivermy WakefulIntentService repo 中的demo/ 项目证明了这一点。

关于Android:为什么系统重启后警报通知停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7056416/

相关文章:

java - 如何在 Android 中实现基于距离的类似 tinder 的搜索?

android - 在android中将pdf转换为String

java - 获取一个 BroadcastReceiver 使其生命周期比 Activity 长

android - 我如何更改 EditText 光标旋钮颜色 android(不是光标颜色旋钮)

java - Android ACTION_CALL 不工作

java - 在应用程序中更新,而不是从市场更新

安卓 9 : Cleartext HTTP traffic not permitted in webview

安卓广播接收器 : threading model and non-overlap

android - 无法实例化接收器 java.lang.ClassNotFoundException

android - 为 One Activity Many Fragment App 构建 fragment 堆栈