- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
随着 Android M 中 Doze 的引入,Android 在 Doze 期间对后台执行的限制越来越多。有人可以详细说明在扩展 Android 自己的服务时是否同样适用。比如NotificationListenerService?
我是这样用的
public class ListenForNotificationsService extends
NotificationListenerService {
private String TAG = this.getClass().getSimpleName();
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
Log.d(TAG, "Notification received");
// Do AsyncTask() for network request
}
@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
if (sbn.getPackageName() != null) {
Log.d(TAG, "Notification removed:" + sbn.getPackageName() + ":" + sbn.getId());
}
}
}
当设备进入打瞌睡状态几分钟后,它会停止工作。我尝试过使用 AlarmManager、JobScheduler、JobIntentService 和普通的 IntentService。当设备深度 sleep 时,它们都不起作用。
附带说明一下,我的设备是华为 Mate 10 Pro。他们以积极的任务管理而闻名。但是我已经将我的应用程序列入白名单,禁用了所有可以从华为方面禁用的功能,这些功能会在后台关闭应用程序。
关于我如何在设备打瞌睡时调用 AsyncTask 的任何建议(相对于谷歌关于维护窗口的规则,我知道在打瞌睡谷歌推迟网络请求、唤醒锁等。我只希望网络请求在 Google 允许时执行)。
最佳答案
原来这不是打瞌睡/后台执行限制。要么 Android O 中存在错误,要么华为正在执行一些激进的任务管理,导致监听器断开连接。
我添加了一些通知,用于在执行 onDisconnected() 时进行监听。在我的 Android 8.0 设备(Huawei Mate 10 Pro)上,onDisconnected() 会在几分钟后执行。然而,在我运行 Android 7.0 的平板电脑上,监听器在长时间后断开连接的次数很少,但它会立即自动重新绑定(bind)并执行 onConnected()。
目前我还不清楚是安卓还是华为。
关于Android NotificationListenerService 后台执行限制/Doze,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49622813/
在 Android“N”中,Doze 已扩展为“Doze on the Go”。 我正在寻找一种方法来检测设备何时进入和离开这些新的轻度 sleep IDLE 和 IDLE_MAINTENANCE 状
我有一个定期运行以保持网络连接有效的方法。在打瞌睡模式下,我想禁止它定期运行并在维护窗口期间只运行一次。当设备退出 Doze 时,我希望再次定期调用该方法。我怎样才能做到这一点? 我已经注册了一个接收
我正在开发一个应用程序,在该应用程序中我必须以固定的时间间隔(比如说 2 分钟后)执行一些重复任务,即使在打瞌睡模式下也应该完成。我的观察如下 - 使用闹钟(使用 RTcflags)执行重复任务不准确
Android 6 上新的Doze 模式会禁用几乎所有有用的后台 Activity 。我有一个应用程序,它会定期唤醒设备(即使没有锁定屏幕),保持部分唤醒锁定,进行一些扫描并将其报告给互联网。它不是
我有与 Android 打瞌睡模式(Android N [深度打瞌睡] 和 M)相关的问题。根据 Android 官方文档,一旦设备进入休眠模式,它就会停止通过 GPS 或网络接收位置更新。 要退出休
随着 Android M 中 Doze 的引入,Android 在 Doze 期间对后台执行的限制越来越多。有人可以详细说明在扩展 Android 自己的服务时是否同样适用。比如Notificatio
我的应用程序每 15 分钟向我的服务器发送一次 GPS 位置数据。此功能是应用程序的核心目的。 但是,当手机关机且不使用时,GPS 记录会逐渐消失。 GPS 记录之间的时间有一段时间是 15 分钟,然
背景 Android 6 引入了一种称为“Doze”的内置机制,以便在设备休眠时更好地处理电池。 问题 问题是,我不明白它到底是如何工作的,以及应用程序应该如何改变以处理这种新机制(如果有的话)。 显
是否有任何文档说明 Android 中打瞌睡模式维护窗口的频率?我读过不同的东西,但没有官方的。有人说它是 1、2、4、6 小时,然后维护窗口每 6 小时重新出现一次,但在 android 文档中找不
Doze 模式如何影响注册的听众? 如果可能的话,我还想知道它是如何影响传感器监听器的。 我的问题是我的 WatchFaceService 在 list 中具有唤醒锁定权限。 watchFace 每分
我正在测试我的新应用程序,但我遇到了问题 isIgnoringBatteryOptimizations 特征。 当应用程序启动时,它会检查该应用程序是否被列入 Doze 白名单。如果没有,它会向用户显
我正在尝试针对 Doze 和 AppStandBy 优化我们的应用程序,并已实现测试应用程序以了解系统在使用不同后台调度程序时的行为。 但是,我对使用 AlarmManager 和 Observabl
对于 DOZE 模式测试,我正在 Android 6.0 上开发一个示例 GCM 应用。 如前所述,在 DOZE 模式下,设备不会为普通优先级 GCM 唤醒。我想检查一下。 根据文档 (https:/
我正在尝试学习 Android 7.0,但我看到了这条评论。 “当设备使用电池供电且屏幕关闭一段时间后,设备会进入休眠状态并应用第一个限制子集:它会关闭应用程序网络访问,并推迟作业和同步" 我不是很明
我稍微修改了这个应用程序:https://github.com/commonsguy/cw-omnibus/tree/master/JobScheduler 它使用 setExactAndAllowW
引用了这个库https://github.com/iammert/RadioPlayerService我有播放/暂停 radio 的代码 if (!mRadioManager.isPlaying
我正在使用 Android Studio 并尝试在使用打盹模式时测试我的应用。我已经阅读了一些链接(包括 the android documentation about doze mode )。但是,
我有一个配置为通过 Firebase 接收推送通知的 Android 应用程序,当手机处于打盹模式时,我遇到了让它工作的问题。 应用程序正确接收推送通知,无论它是在前台还是在后台。为此,我只使用 da
我有一个前台通知服务,它使用 ActivityRecognition 持续监控用户的操作,并在用户状态发生变化时将它们写入 AWS。它工作了一段时间。但是我注意到当用户空闲时间较长时,例如用户整夜 s
当我使用 Spotify Android SDK 播放音乐并且打瞌睡时,音乐停止播放,因为应用程序失去了网络连接。有办法解决吗? 我能想到的唯一方法是要求用户使用 ACTION_REQUEST_IGN
我是一名优秀的程序员,十分优秀!