清除应用程序数据后应用程序警报管理器不工作

App AlarmManager not working after clearing App Data

我希望在每天中午 12 点显示一个状态栏通知,因此,我正在创建一个 AlarmManager 来触发一个 IntentService 来显示一些通知。

我添加了启动完成接收器,并且在应用启动时注册了 AlarmManager。一切正常,即使应用程序不在前台(预期行为),每天中午 12 点也会显示通知。

问题是,每当我在应用程序设置中清除应用程序数据时,AlarmManager 不再触发应用程序通知。但是,当我再次启动该应用程序时,该应用程序开始以预期的行为每天处理通知。

谁能帮我解决这个问题?是否有解决方法来确保无论这些条件如何都触发 AlarmManager。

Is there a workaround to ensure that AlarmManager is triggered irrespective of these conditions?

没有。当你按下'Clear data'时,不仅应用程序的数据被清除,its processes are also killed。发生这种情况时,计划的警报将随之终止。

发生这种情况并不奇怪。 运行 应用可能需要您清除的数据,如果找不到该数据,它可能会崩溃。终止应用程序将防止这些崩溃。

这是正常行为。如果用户自愿强制停止或清除应用程序的数据,则应将其停止。 android 系统终止整个任务,不允许任何服务或广播到 运行,直到 activity 再次成为 运行。所以你不能做任何事情来阻止这种情况。看到 qn 回答 here