【 Android 】Lifecycle
既然Orientation那篇有用了生命週期來講解app的流程,這裡就順便記錄一下生命週期:
在android系統的裝置通常會有"上一步"和"HOME"鍵來操作系統(以HTC new ONE為例),如下:
一、上一步
若是按下上一步,生命週期的表現如下圖:
在android系統的裝置通常會有"上一步"和"HOME"鍵來操作系統(以HTC new ONE為例),如下:
一、上一步
若是按下上一步,生命週期的表現如下圖:
當按下上一步的時候,程式會destroy並finish掉,若是再開啟程式則會從oncreate重新執行
二、Home
若是按下home,生命週期的表現如下圖:
當按下home的時候,程式則會先跑onstop,若是再開啟程式則是會跑restart的部份
所以在程式的處理上,在這兩個動作發生的時候,應該作不一樣的設置處理。
PS: 若是按下back鍵不想回上一頁或是關掉app,可以實作下列動作:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK)
{
// Show home screen when pressing "back" button,
// so that this app won't be closed accidentally
Intent intentHome = new Intent(Intent.ACTION_MAIN);
intentHome.addCategory(Intent.CATEGORY_HOME);
intentHome.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intentHome);
return true;
}
return super.onKeyDown(keyCode, event);
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK)
{
// Show home screen when pressing "back" button,
// so that this app won't be closed accidentally
Intent intentHome = new Intent(Intent.ACTION_MAIN);
intentHome.addCategory(Intent.CATEGORY_HOME);
intentHome.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intentHome);
return true;
}
return super.onKeyDown(keyCode, event);
}
虛動作跟home鍵類似,等待程式再度開啟的時候會回到剛關閉時候的狀態。
留言
張貼留言