2
我有一個背景Service
,即使應用程序被Android殺死,也需要運行這些背景。這目前正在完美運作。如何綁定到由另一個應用程序實例啓動的服務
我的問題是,當我重新啓動應用程序(後臺服務仍在運行)時,我希望我的Activity
綁定到該服務以訪問其某些方法。當我嘗試綁定ServiceConnection
時,onServiceConnected
從不會被調用。
final private ServiceConnection serviceConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
Log.d(TAG, "onServiceConnected"); //this is never called
MyBackgroundService.ServiceBinder binder = (MyBackgroundService.ServiceBinder) service;
backgroundService = binder.getService();
}
public void onServiceDisconnected(ComponentName className) {
Log.d(TAG, "onServiceDisconnected");
backgroundService = null;
}
};
private void bindBackgroundService(){
this.bindService(new Intent(this, MyBackgroundService.class), serviceConnection, Context.BIND_AUTO_CREATE);
}
我這樣做是錯誤的嗎?停止Service
並重新啓動它會更好嗎?
在'Activity'被銷燬之前,你是否解除了'Service'的綁定? – Emmanuel
「我有一個需要運行的後臺服務,即使應用程序被Android殺死了」 - 如果Android終止託管服務的進程,服務就會消失。該服務可能會在某個時候重新啓動,具體取決於您從onStartCommand()返回的內容。 – CommonsWare
@Emmanuel我嘗試,但onDestroy不經常被稱爲... –