Android 理解生命週期最好例子—按home暫停音樂播放,跳轉暫停

可以設置個全局變量

static boolean isContinue = false;

然後在每個Activity中做如下的處理:
在onResume方法中
將這個變量設置成false;
在onPause方法中
將這個變量設置成true;
在onStop方法中進行判斷,
if(isContinue != false)
stopService;
當你跳轉到另一個activity的時候,
具體的activity生命週期如圖:
這裏寫圖片描述

先執行第一個activity的onPause
此時isContinue = true;
然後執行第二個activity的onResume
此時此時isContinue = false;
當第二個activity is running的時候
第一個activity纔會onStop
此時不會停止服務
當按home鍵的時候,就是直接onPause onStop,然後停止服務。
再次進入應用程序中時,發現背景音樂不再播放了。如果希望此次背景音樂能繼續播放,可以如下處理:

在每個Activitiy中 的onResume方法中 添加

if(!AudioService.isPlay){
startService(new Intent(this, AudioService.class));
}

isPlay爲服務類Service中我自己定義的一個公共靜態變量,在Service中的onStart方法中 爲true 在onDestroy中爲false

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章