如何解决使用即使在设备处于打盹/睡眠模式时也能工作的计时器更新前台服务通知
我有一个 Timer (System.Timers),它被包装到一个公开两个事件的对象中。一个每秒触发一次,一个每 7 分钟触发一次。每秒触发的事件正在更新带有倒计时的前台服务通知。每 7 分钟触发一次的事件是更新一个 int 值,该值显示在该前台通知的进度条中。
关键是我希望 int 值达到 150。所以我正在倒计时 StartForeground() 时给出的值需要多长时间才能达到 150(每 7 分钟增加 1) ) 并在前台通知中显示剩余时间的进度(每秒更新一次)。
这一切正常......直到我锁定屏幕并且手机可能进入“打瞌睡”或睡眠模式。这会停止我的计时器或停止服务,不确定。
问题:即使设备被锁定/睡眠/打瞌睡,我怎样才能让它继续工作。我使用的是 xamarin-android 而不是表单。
解决方法
尝试将应用程序添加到白名单。
您可以使用PowerManager.IsIgnoringBatteryOptimizations
检查该应用是否在白名单系统中。
如果没有,您可以通过向 REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
添加 Androidmanifest.xml
权限并发送 Intent
的 ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS
来申请权限。
例如:
PowerManager powerManager = (PowerManager)GetSystemService(Context.PowerService);
if (!powerManager.IsIgnoringBatteryOptimizations(PackageName))
{
Intent intent = new Intent(Settings.ActionIgnoreBatteryOptimizationSettings);
StartActivity(intent);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。