【 Android 】Lifecycle

既然Orientation那篇有用了生命週期來講解app的流程,這裡就順便記錄一下生命週期:
在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);
    }
虛動作跟home鍵類似,等待程式再度開啟的時候會回到剛關閉時候的狀態。

留言

這個網誌中的熱門文章

【 Android 】控制ImageView大小&位置

【 Android 】利用file取得資料夾內檔案

【 Android 】防止系統進入休眠和螢幕恆亮