Android StartActivity 首先杀死现有的活动,它的 ondestroy 应该被调用并切换到新的活动
Posted
技术标签:
【中文标题】Android StartActivity 首先杀死现有的活动,它的 ondestroy 应该被调用并切换到新的活动【英文标题】:Android StartActivity kill the exisiting activity first and its ondestroyed should get called and Switch to new Activity 【发布时间】:2020-09-01 17:02:27 【问题描述】:android StartActivity 首先杀死 Activity1,它的 ondestroyed 应该被调用。完成后,打开另一个活动。
startActivity(new Intent(Activity1.this, Activity2.class));
finish();
即使我在这种情况下首先调用完成,Activity1 ondestroy 方法也会在 Activity2 显示给用户之后调用。我正在寻找正确的方法,我可以确保 Activity1 被完全销毁然后只显示 Activity2
【问题讨论】:
【参考方案1】:你可以调用finish(),在onDestroy()里面调用startActivity():
void onDestroy()
startActivity(new Intent(Activity1.this, Activity2.class));
super.onDestroy();
【讨论】:
【参考方案2】:Mabye noHistory
atrribute 帮你解决这个问题
<activity android:name=".ClassName" android:noHistory="true" ... />
另外,看看这篇文章: Start new Activity and finish current one
【讨论】:
以上是关于Android StartActivity 首先杀死现有的活动,它的 ondestroy 应该被调用并切换到新的活动的主要内容,如果未能解决你的问题,请参考以下文章
Android - 从 startActivity 获取活动对象
Android 系统源码初步阅读之 activity 的 startActivity(intent) 与 非 activity 的 startActivity(...) 的不同
Android 系统源码初步阅读之 activity 的 startActivity(intent) 与 非 activity 的 startActivity(...) 的不同