我的应用中有3个活动。
主页 - >清单 - >细节
当我处于详细活动时,我想要一个主页按钮,将我重定向到Home活动并关闭其他活动。然后,我尝试了这段代码:
Intent intent = new Intent(this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
因为FLAG_ACTIVITY_CLEAR_TOP
是:
如果设置,则正在启动的活动已在运行中 当前任务,然后而不是启动它的新实例 活动,其上的所有其他活动将被关闭 这个意图将作为一个传递到(现在在顶部)旧活动 新的意图。
我得到了我想要的东西,但它仍然继续创造。有没有办法启动房屋,而不是去onCreate?
答案 0 :(得分:1)
您的想法和Android尚未完全兼容。 ;)
当你“启动房屋”时,这意味着它将启动,这意味着它将被创建。
但是,您可以使用Activity.startActivityForResult()
来启动List
和Detail
。然后,您的“主页”按钮会finish
Detail
您的List
活动。在Activity.finish()
的{{3}}回调中,您只需使用onActivityResult
,Home
{{1}}即可了解此事件并了解你现在回来了。
答案 1 :(得分:0)
您无法控制Activity
生命周期。 Android决定继续运行哪些活动以及关闭哪些活动取决于Android。这意味着当一个Activity失去焦点时,它不一定被破坏或关闭,但可能只是失去焦点并继续运行,但也可能没有。这取决于Android;你无法控制这种行为。
如果要在给定状态下恢复Activity
,则必须保存所有需要的数据并在onCreate()
中恢复。