標籤:des android style io ar color os sp strong
最近查了很久這個事情,分享給大家,
原理很簡單,一個Activity在manifet裡聲明了android:parentActivityName;這時候通過Activity左上方的返回按鈕點擊返回,
啟動聲明的父Activity,總會先調用父Activity的OnDestroy方法,具體如下面所說:
<activity android:name="com.example.helloworld.DisplayMessageActivity" android:label="@string/title_activity_display_message" android:parentActivityName="com.example.helloworld.MainActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.helloworld.MainActivity" /> </activity>
DisplayMessageActivity為子Activity,而MainActivity為父Activity,點擊DisplayMessageActivity的左上方返回按鈕的時候,調用邏輯如下:
MainActivity.onDestroy()MainActivity.onCreate(null)MainActivity.onStart()
解決方案是:
為設定MainActivity屬性android:launchMode=singleTop
順便腦補android:parentActivityName的作用,就是為了左上方給子Activity加一個返回按鈕,具體資訊如下:
Android 4.1提高效能、增強使用者體驗 App 棧導航:通過設定android:parentActivityName改變回退棧的內容,如果棧中沒有parentActivity,則合成棧,通過onPrepareNavigateUpTaskStack()改變parentActivity中的內容。
在設定了android:parentActivityName後,點擊子Activity返回鍵,父Activity總會調用OnDestroy()的解決方案