在使用中有一个接收器:
IntentFilter mFilter = new IntentFilter();
mFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
mFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
mFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
mFilter.addAction(WifiManager.NETWORK_IDS_CHANGED_ACTION);
mFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
服务是前台服务
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
...
startForeground(NOT_ID, getNotification(type));
return START_STICKY;
}
服务具有始终运行的通知。当服务“暂停”时,通知正常。
问题:
拔下USB充电器(连接到PC或普通充电器也发生同样的事情),并且在Android 9上进行了测试,接收器无法捕获事件,连接事件(例如更改Wi-Fi,通过数据连接或失去连接。
如果我插入USB,则事件detectios正常运行。要查看我正在使用测试界面而不是logcat的事件。
我知道发生这种情况是因为我想在Android 9中系统会在未插入设备时暂停服务以节省电池电量。
在Android 9中,当拔下USB时是否可以调用接收器?
我在Android 8.1上进行了测试,服务未暂停。
注意:我无法在清单中声明接收方,因为从Android 6开始,由于电池原因无法完成接收方。
更多信息:要进行测试,所有活动都将完全关闭,并且仅显示服务和通知。如果某些活动对用户接收器可见,则正常。