我已經創建了一個應該接收android.bluetooth.device.action.ACL_DISCONNECTED/ACL_CONNECTED
事件的服務。服務將始終接收註冊的廣播操作?
我知道android中的服務可能會在android決定時重新啓動/停止。
不過,我想知道一個服務是否總是保證接收它註冊的事件,即使它已經被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在服務類中實現。
此代碼在正常cirmustances正常工作,但您是否說這是不正確的,並需要一個不同的類(BroadcastReceiver)?
如果以上是正確的,我想知道這個服務類是否因任何原因停止,當相關的事件引發時,類將被重新啓動,並且BroadcastReceiver將獲得事件。
您創建了一個新註冊的賬號(我把它合併進這一個),請考慮註冊所以這不會再發生了。此外,答案是答案,而不是更新。謝謝。 – Will 2011-01-21 17:00:55