首页 > 代码库 > 在设置了android:parentActivityName后,点击子Activity返回键,父Activity总会调用OnDestroy()的解决方案
在设置了android:parentActivityName后,点击子Activity返回键,父Activity总会调用OnDestroy()的解决方案
最近查了很久这个事情,分享给大家,
原理很简单,一个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()的解决方案
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。