0

我的应用中有 3 个活动。

首页 -> 列表 -> 详情

当我在 Detail 活动中时,我想要一个主页按钮,它将我重定向到主页活动并关闭其他活动。然后,我尝试了这段代码:

Intent intent = new Intent(this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

因为FLAG_ACTIVITY_CLEAR_TOP是:

如果设置,并且正在启动的活动已经在当前任务中运行,那么不会启动该活动的新实例,而是关闭它上面的所有其他活动,并且此 Intent 将被传递到(现在顶部)作为新意图的旧活动。

我得到了我想要的,但它仍然是 onCreate。有什么方法可以启动家庭而不去其 onCreate?

4

2 回答 2

1

你的想法和安卓还没有完全兼容。;)

当您“启动家”时,这意味着它将被启动,这意味着它将被创建。

但是,您可以使用Activity.startActivityForResult()启动ListDetail。您的“主页”按钮将成为finish您的Detail活动。在 的onActivityResult回调中,List您将通过 using Activity.finish(),并且您将捕获事件并知道您现在回来了。onActivityResultHome

于 2013-04-30T15:04:48.740 回答
0

您无法控制Activity生命周期。由 Android 决定哪些活动要继续运行以及哪些活动要关闭。这意味着当 Activity 失去焦点时,它不一定会被销毁或关闭,而可能只是失去焦点并继续运行,但也可能不会。这取决于Android;你无法控制这种行为。

如果要恢复Activity给定状态,则必须保存所有需要的数据并将其恢复为onCreate().

于 2013-04-30T15:04:28.067 回答