重新打开应用程序,而不显示以前的活动

时间:2016-01-17 15:41:01

标签: java android activity-finish

我现在正面临一个问题。当我退出应用程序并再次重新打开时,它会显示我之前的活动。有没有办法在重新打开应用程序后启动MainActivity?我尝试使用但无济于事:

android:noHistory="true"

$min

请帮帮我谢谢。

1 个答案:

答案 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