我现在正面临一个问题。当我退出应用程序并再次重新打开时,它会显示我之前的活动。有没有办法在重新打开应用程序后启动MainActivity?我尝试使用但无济于事:
android:noHistory="true"
和
$min
请帮帮我谢谢。
答案 0 :(得分:0)
使用此:
Intent intent = new Intent (SecondActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
请参阅此处Clear the entire history stack and start a new activity on Android
如果你想拨打finish()
,你应该在startActivity
电话后进行,如果你在任何生命周期回调中进行,可以在不同的时刻调用,而不仅仅是导航到其他活动。
noHistory
的好处是,系统负责在正确的时刻完成活动(因为您可以阅读here,系统实际上会调用你的finish()方法)所以你可以确定你没有在一个糟糕的时刻调用它,一切都是安全的(这可能现在看起来并不重要,但它可能是,例如在使用时线程)
另请尝试阅读Empty process
不包含任何活动应用程序组件的进程。该 保持这种过程活着的唯一理由是缓存 目的,在下次组件需要时改善启动时间 跑在里面。系统经常杀死这些过程以平衡 进程缓存和底层之间的整体系统资源 内核缓存。
空进程是指不保存任何活动应用程序的进程 组件。保持这样一个过程的唯一原因是 缓存以改善下一次组件的启动时间 应用程序需要运行。因此,系统通常会杀死这些 流程以平衡这些流程之间的整体系统资源 空缓存进程和底层内核缓存。
请阅读http://developer.android.com/guide/topics/processes/process-lifecycle.html