1. 程式人生 > >按home鍵 再次進入應用無法回到退出是的介面

按home鍵 再次進入應用無法回到退出是的介面

一:

設定 android:noHistory=true後,該Activity在statck中不留歷史痕跡。預設的值是false。

舉例說明,假設有三個Activity分別是:A,B,C。這三個Activity可以依次順序啟動下一個Activity,比如,在A中做一個Button,使用者點選後跳轉到B ; 同樣,在B中也做一個Button,點選跳轉到C。C不再做Button,只是一個用以演示的空殼Activity。

AndroidManifest.xml中配置B的屬性為:android:noHistory=true

其他兩個不做特別設定,僅僅作為一般的Activity處理。

可以觀察到,A啟動後,從A跳轉到B,再從B跳轉到C,進入C後,此時如果按返回鍵,將直接進入A,而不是B。簡單的跳轉邏輯路線:

A –> B –> C –> 按返回鍵 –> A

綜上,可以這麼理解android:noHistory=true對Activity行為的影響:當該Activity螢幕不可見時,相當於Android系統呼叫Activity的finish()方法結束了該Activity。

二:

正在執行的android程式,按home鍵之後退回到桌面,在次點選程式圖示避免再次重新啟動程式解決辦法

例如:一個android程式包含兩個Activity,分別為MainActivity和OtherActivity,MainActivity為程式啟動的Activity。如果程式正位於OtherActivity,點選home鍵,程式退回到桌面,

在次點選程式圖示,程式預設會自動重啟,即重新進入MainActivity,而不是進入點選home鍵的時刻程式所位於的OtherActivity。

解決方法:

在AndroidManifest.xml中修改,MainActivity的launchMode,去掉android:launchMode="singleTask"啟動模式即可。

AndroidManifest.xml的配置程式碼

<application

       android:icon="@drawable/ic_launcher"

       android:label="@string/app_name"

       android:theme="@style/AppTheme" >

       <activity

           android:name=".MainActivity"

           android:label="@string/title_activity_main">

           <intent-filter>

                <actionandroid:name="android.intent.action.MAIN" />

                <categoryandroid:name="android.intent.category.LAUNCHER" />

           </intent-filter>

       </activity>

       <activity

           android:name=".OtherActivity"

           android:label="@string/title_activity_other"android:launchMode="singleTask">

        </activity>

   </application>

三: android:alwaysRetainTaskState="true"設定為true