1. 程式人生 > >Android 理解生命週期最好例子—按home暫停音樂播放,跳轉暫停

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