如何讓Android App按Home鍵之後再次開啟仍在之前的頁面

通常在Android的世界裡,只要按下App的 icon都會從程式進入的第一個頁面(以下簡稱首頁)啟動,所以不論當你操作App進入到了哪一層、哪個頁面,只要是在桌面再次按下了App的icon就會又回到首頁。

上述的流程可以透過開啟App進入到某一層之後,按Android手機的Home鍵,再按下App icon,就會了解發生了什麼事。


按下App icon就是開啟首頁對於Android使用者一直以來是再習慣也不過的事,但對於iOS的使用者就覺得不對勁了。

原來在iOS的世界裡,App開啟之後,如果按了Home鍵,下次再按了桌面上的icon還是會停留在A pp上次最後的頁面,除非iOS的使用者透過切換程式的方式把該App刷掉(關掉),下次按下icon才會開啟App的首頁。

那麼,如果有天Android工程師收到的需求就是要如同iOS的行為一樣時,該怎麼辦呢?

上網查了一下,解決的方法只要在Activity的onCreate()生命週期裡加入下面的程式碼即可以解決
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) 
    {
        finish();
        return;
    }

    //其他原本在此生命週期執行的程式碼...
    //...
    //...
}

Reference:
How to return to the latest launched activity when re-launching application after pressing HOME?

留言

這個網誌中的熱門文章

Mac安裝JDK後仍出現沒有runtime的錯誤 No Java runtime present, requesting install

Android使用Callback做為傳遞資料/通知的方法

如何實作從API抓取資料顯示在列表頁(ListView)上