当USB被拔出时,Android 9中的前台服务暂停
服务中有一个接收器:当USB被拔出时,Android 9中的前台服务暂停,android,broadcastreceiver,Android,Broadcastreceiver,服务中有一个接收器: IntentFilter mFilter = new IntentFilter(); mFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); mFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); mFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
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,事件检测器工作正常。要查看事件,我使用的是测试接口,而不是logcat
我知道这是因为我假设在Android 9中,当设备未插入时,系统会暂停服务以节省电池
在Android 9中,当USB被拔出时,有没有办法调用接收器
我在安卓8.1中进行了测试,服务并没有暂停
注意:我不能在清单中声明接收者,因为Android 6由于电池的原因而无法声明接收者
更多信息:要进行测试,所有活动都将完全关闭,只显示服务和通知。如果某些活动对用户可见,则接收器工作正常