在我的应用程序中,我有几个活动,主屏幕有4个按钮,每个按钮启动不同的活动。所以其中一个是搜索活动,一旦搜索它就会显示结果活动。这个结果活动可以从其他活动中获得,所以通常是这样的:
Main activity -> Search activity -> Result activity
Main acitivty -> someother activity -> Result activity
现在,如果我已达到此结果活动并按回一次或两次,之后按Home键将显示主屏幕。但是,如果我想通过按住主页按钮并单击我的应用程序返回到我的应用程序,它将始终返回到结果活动,无论哪个活动是我正在使用的最后一个活动。如果我再次按下它会将我带回主屏幕。
如果我再试一次,我会再次参加结果活动。避免这种情况的唯一方法是通过单击应用程序的图标来启动应用程序。这将我带到我正在使用的最后一个活动,它记得状态,所以如果我再次按回来它不会把我带到主屏幕,而是转到之前的活动。为了说明这一点:
Main activity -> Search activity -> result activity --back--> Search activity --Home Button--> Home Screen --Hold Home and select the app --> Result activity --back--> Home Screen
--Click application icon--> Search activity --back--> Main activity
另一件事是,如果我在结果活动中按下主页按钮,并通过单击图标启动应用程序,它将转到结果之前的活动。
为什么会这样?任何解决方法?
答案 0 :(得分:2)
看起来你的intent.addFlags使用你自己的“自定义”标志来为你的新活动(R.id.flag_search)发送一个值?我不确定是否支持或标志和活动的预期用途。这些标志记录在这里:
http://developer.android.com/intl/de/reference/android/content/Intent.html#setFlags%28int%29
答案 1 :(得分:0)
将alwaysRetainTaskState设为true。