Android 理解生命週期最好例子—按home暫停音樂播放,跳轉暫停
阿新 • • 發佈:2019-01-22
可以設定個全域性變數
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