android:一個Open鍵引發的問題!!

來源:互聯網
上載者:User

標籤: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...}


問題得到完美解決。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.