随着android m和Android的引入,在杂乱无章的过程中,通过背景执行获得了越来越多的限制。有人在扩展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。当设备深睡时,它们都无法工作。
作为旁注,我的设备是华为Mate 10 Pro。他们以积极的任务管理而闻名。但是我已经列出了我的应用程序,禁用了可以从华为一边禁用的所有东西,这些方面杀死了后台的应用程序。
在设备打zing时如何调用asynctask的任何建议(相对于Google关于维护窗口的规则,我知道在Doge Google Defers网络请求下,唤醒锁等。我只希望网络请求来Google允许(。
事实证明,这不是打ze/背景执行限制。Android O中有一个错误,或者华为正在进行一些积极的任务管理,这导致听众被断开。
我添加了一些通知,这些通知在执行OnDisconnected((时会聆听。在我的设备(Huawei Mate 10 Pro(上,使用Android 8.0,几分钟后将执行OnDisconnected((。但是,在我正在运行Android 7.0的平板电脑上,侦听器在长时间后几次断开连接,但是它会立即自动重新启动并执行连接。
。到目前为止,我没有明确的指示是Android还是华为。