歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android:一個Open鍵引發的問題!!

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

日期:2017/3/1 9:42:28   编辑:Linux編程

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方法中添加的代碼如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
// 在這裡發送廣播,喚醒之前啟動的Activity
finish();
return;
}

// Regular activity creation code...
}

問題得到完美解決。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved