2013-02-13 44 views
8

我創建與使用Android的服務打 背景音樂,因爲我想跑BGM而改變活動的背景音樂。遊戲應用。 我的問題,我宣佈完成()在每個活動的onPause方法(我不想讓用戶返回&想殺死活性)。Android的一站式服務,當退出應用程序

所以當我意圖到其他活動它調用onDestroy並停止服務。 我想停止服務完全退出應用程序(按主頁按鈕),並想要通過BGM的活動,並在onPause()完成()。這可能嗎?還是有另一種解決方案?

public class BackgroundMusicService extends Service { 
    private static final String TAG = null; 
    MediaPlayer player; 

    public IBinder onBind(Intent arg0) { 

     return null; 
    } 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     player = MediaPlayer.create(this, R.raw.topbgm); 
     player.setLooping(true); // Set looping 
     player.setVolume(100, 100); 
    } 

    public int onStartCommand(Intent intent, int flags, int startId) { 
     player.start(); 
     return 1; 
    } 

    public void onStart(Intent intent, int startId) { 
     // TO DO 

    } 

    public IBinder onUnBind(Intent arg0) { 
     // TO DO Auto-generated method 
     return null; 
    } 

    public void onStop() { 

    } 

    public void onPause() { 

    } 

    @Override 
    public void onDestroy() { 
     player.stop(); 
     player.release(); 
     Log.i("service", "service killed"); 
    } 

    @Override 
    public void onLowMemory() { 

    } 
} 

清單中

<service android:name=".BackgroundMusicService" android:process=":remote" /> 

回答

15

把這個線YOUT活動

stopService(new Intent(this, BackgroundMusicService.class)); 
中的onDestroy

()方法,你按home鍵。

+0

感謝reply.I做this.if你仔細看我的問題,問題是當活動的變化,完成()調用的onDestroy方法和停止服務。你有什麼主意嗎? – Hassy31 2013-02-13 06:14:00

2

stopService(new Intent(this, BackgroundMusicService.class));

添加到您的onPause()方法和您的主要活動onDestroy()方法。因爲如果按下Home按鈕,該應用程序將在隨機時間的背景上,並且onDestroy()方法在您最小化應用程序後將不會被調用。最好的方法是將其放入onPause()方法中。當您的應用程序活動不是前臺活動時,將調用onPause()方法。

+0

謝謝你的回覆。我試過這個東西,我想在運行時通過activities.but完成()onPause&它調用onDestroy方法 – Hassy31 2013-02-13 06:17:22

0

覆蓋在服務方法onUnbind(意向看房)