在設置了android:parentActivityName後,點擊子Activity返回鍵,父Activity總會調用OnDestroy()的解決方案

一個Activity在manifet裡聲明了android:parentActivityName;這時候通過Activity左上角的返回按鈕點擊返回,啟動聲明的父Activity,總會先調用父Activity的OnDestroy方法,具體如下面所說:
<activity android:name=".NewContactActivity"
            android:parentActivityName=".MainActivity"/>

NewContactActivity為子Activity,而MainActivity為父Activity,點擊NewContactActivity的左上角返回按鈕的時候,調用邏輯如下:
MainActivity.onDestroy()
MainActivity.onCreate(null)
MainActivity.onStart()
解決方案是:
為設置MainActivity屬性android:launchMode=singleTop
順便腦補android:parentActivityName的作用,就是為了左上角給子Activity加一個返回按鈕,具體信息如下:
Android 4.1提高性能、增強用戶體驗
在Android 4.1以上,可以指定android:parentActivityName="MainActivity"點擊打開其他活動後,可以看到標題欄多了一個返回導航,再點擊標題欄的返回時,回到MainActivity,而不是回到之前的任務。只在4.1的機器上有效,在2.X的機器上和以前沒有任何區別。

留言

這個網誌中的熱門文章

Android - 使用 adb 安装apk

Android TextView autosizing 自動調整大小

Kotlin - 實現Android中的Parcelable