2012-12-17 44 views
0

我在我的應用程序的5個活動中都有以下代碼。我想保持與這五項活動相關的服務運行。它會在後臺播放音樂。但是,當用戶離開這五個活動中的任何一個時,該服務應該被殺死。使用下面的代碼我可以得到它,以便在活動之間導航時播放音樂。但服務在離開應用程序後繼續運行。解決這個問題的最好方法是什麼?如何創意。如何在用戶停止查看應用程序後停止服務運行活動。 Android

我在服務的onDestroy方法,所以當該服務被停止,我可以告訴把這個吐司消息。

Toast.makeText(this, "My Service Destroyed", Toast.LENGTH_LONG).show(); 

當我離開應用程序時,我從來沒有看到任何Toast消息彈出。其他Toast消息確實顯示錶明服務已經啓動。

@Override 
public void onPause() { 
    super.onPause(); 
    unbindService(serviceConnection); 
} 

@Override 
public void onResume() { 
    //After a pause OR at startup 
    super.onResume(); 
    //add this to the onResume of the activity 
    // startService(new Intent(this, AudioService.class)); 
    bindService(new Intent(this, AudioService.class), 
        serviceConnection, Context.BIND_AUTO_CREATE); 

} 

回答

1

按照documentation here

多個客戶端可以綁定到服務一次。當客戶端完成與服務的交互時,它會調用unbindService()來解除綁定。一旦沒有客戶綁定到該服務,系統就會銷燬該服務。

所以也許你錯過了一些你的活動中的一些解脫。你可以在你的服務的onBindonUnbind方式打印日誌檢查。

相關問題