Я создал службу, которая должна получать события android.bluetooth.device.action.ACL_DISCONNECTED/ACL_CONNECTED
.Служба всегда будет получать действие Broadcast, зарегистрированное для?
Я знаю, что службы в android могут быть перезапущены/остановлены, когда решит android.
Тем не менее, мне интересно, всегда ли гарантируется получение услуг для зарегистрированных событий, даже если они были убиты андроидом?
Я предполагаю, что это означает, что андроид должен будет перезапустить убитую службу, которая зарегистрировалась для прослушивания событий, когда это событие имеет место. Правильно ли это предположение?
Большое спасибо за быстрый ответ.
Позволь мне дать больше информации, образец кода следующим образом:
public class my_service extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
...
IntentFilter filterDisconnected = new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED);
this.registerReceiver(mReceiverDisconnected, filterDisconnected);
...
}
private final BroadcastReceiver mReceiverDisconnected = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
...
}
}
...
}
Так что с этим кодом BroadcastReceiver реализован в классе обслуживания.
Этот код работает нормально при нормальных условиях, но вы говорите, что это не правильно, и нужен другой класс (BroadcastReceiver)?
Если это правильно, я задаюсь вопросом, остановлен ли этот класс обслуживания по какой-либо причине, когда соответствующее событие будет поднято, класс будет перезапущен, и BroadcastReceiver получит событие.
Вы создали новую незарегистрированную учетную запись (я объединил ее в эту), пожалуйста, подумайте о регистрации, чтобы этого больше не повторилось. Кроме того, ответы отвечают за ответы, а не за обновления. Благодарю. – Will