標籤:android style class blog code java
1.問題簡介
首先描述一下問題,當我們安裝完APP的時候,介面會顯示兩個按鈕,一個完成鍵,一個Open鍵,點擊Open鍵之後,進入應用。此時,我們點擊HOME鍵,程式將會後台。然後再點擊該案頭上應用程式的表徵圖,巨大的BUG出現了:app會重新啟動!而不是將原來的介面onresume!如果你的應用對多次啟動不敏感,這道沒什麼,但是,如果你的應用對多次啟動很敏感,你就必須做處理了。
2.解決方案
首先分析問題成因,在android目前的系統下(最新的為4.4.3),點擊Open鍵和點擊表徵圖啟動時,Intent的參數傳遞的不一樣,activity的啟動方式不同,導致上述問題的產生。但是,由於啟動參數由系統設定,我們不好改變。那我們的思路就有兩個:
1.第二次啟動的時候,把第一次啟動的殺掉
2.第二次啟動的時候,將第一次啟動的Activity喚醒,第二次啟動關閉。
一般我們選擇第二種,因此,我們就有了如下思路:
1.在啟動第一個Activity的時候,判斷啟動方式是不是從點擊OPEN鍵啟動的.
2.在需要喚醒的activity中註冊BroadcastReceiver,接收到廣播之後,調用自己的onResume方法。
第一個Activity的onCreate方法中添加的代碼如下:
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { // 在這裡發送廣播,喚醒之前啟動的Activity finish(); return; } // Regular activity creation code...}
問題得到完美解決。