當我的服務正在運行時,我可以在屏幕上看到我的應用程序,一切正常。我的服務發送廣播消息,我可以在我的「MainActivity」中看到它們。但只要我按下主頁按鈕,並且我的應用程序不再處於前景,它就會停止。該服務仍在運行,但廣播沒有達到我的「死亡」或「暫停」應用程序。這是我的代碼:android:如何在應用程序不活動時接收服務的廣播
主要活動:
onCreate:
Intent intent = new Intent(getApplicationContext(), MainGate_Service.class);
startService(intent);
@Override
protected void onStart() {
super.onStart();
LocalBroadcastManager.getInstance(this).registerReceiver(ServiceReceiver, new IntentFilter("MainGate_ring"));
}
@Override
protected void onStop() {
super.onStop();
LocalBroadcastManager.getInstance(this).unregisterReceiver(ServiceReceiver);
}
private BroadcastReceiver ServiceReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getStringExtra("ServiceMessage");
if(message != null) {
if(alarmActive && message.equals("ring"))
new soundPlayer().execute();
}
setNoti(message);
}
服務:
@Override
protected void onHandleIntent(Intent intent) {
ring = rcv_ring();
Intent ServiceIntent = new Intent("MainGate_ring");
ServiceIntent.putExtra("ServiceMessage", ring);
LocalBroadcastManager.getInstance(this).sendBroadcast(ServiceIntent);
}
我認爲你的邏輯有一些問題。無論你需要做什麼,你爲什麼不在服務內部做到這一點? –
只是註冊您的接收器清單不在活動內。 – Radhey