我启动主要活动,更改UI中的一些设置,按回按钮,然后重新打开活动。 onCreate()
被再次调用并且活动回到默认状态。为什么是这样?singleInstance启动模式:为什么在活动结束前调用onCreate?
我希望只onResume()
被称为,因为我有这样的清单:
android:launchMode="singleInstance"
我启动主要活动,更改UI中的一些设置,按回按钮,然后重新打开活动。 onCreate()
被再次调用并且活动回到默认状态。为什么是这样?singleInstance启动模式:为什么在活动结束前调用onCreate?
我希望只onResume()
被称为,因为我有这样的清单:
android:launchMode="singleInstance"
这是因为,当你按下回来,这destroyes活动。 我认为你想要的是当你回到这个活动时保持状态,而不是真的有它的一个实例。所以你应该保存你需要的信息,然后在onCreate中恢复它们。
单实例仅意味着(如果我记得的话),如果您启动多个活动而未完成它们,那么当您调用startActivity()并且不会调用onCreate时,具有singleInstance的实例将返回到前端。但是这意味着你不能通过按回来产生这种行为。 也许你可以重写onBackPressed,并开始另一个活动(你应该回去),而不是调用super.onBackPressed()。这应该做你想做的事情,但如果认为这将是一种难以管理。
顺便记住活动可能由系统本身被杀死,所以你不应该依赖于一个事实,即你的活动不被打死
尝试在onBackPressed()
使用moveTaskToBack(true);
,让您的当前活动隐藏的,而不是破坏,所以你可以重新打开它
@Override
public void onBackPresses(){
moveTaskToBack(true);
}
我不知道这个方法!但是你仍然必须记住系统可以销毁这个活动,所以不要依赖它没有被销毁的事实 – liltof
按后退按钮销毁目前在前面的活动,所以当你打开它应该真的打电话onCreate。 – Enzokie