Android 如何开展本案活动?
我的应用程序中有3个活动 主页->列表->详细信息 当我进行详细活动时,我希望有一个主页按钮,该按钮可以将我重定向到主页活动并关闭其他活动。然后,我尝试了以下代码:Android 如何开展本案活动?,android,Android,我的应用程序中有3个活动 主页->列表->详细信息 当我进行详细活动时,我希望有一个主页按钮,该按钮可以将我重定向到主页活动并关闭其他活动。然后,我尝试了以下代码: Intent intent = new Intent(this, HomeActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); 由于标志\u活动\u清除\u顶部为: 如果已设置,则正在启动的活动已在中运行 当
Intent intent = new Intent(this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
由于标志\u活动\u清除\u顶部
为:
如果已设置,则正在启动的活动已在中运行
当前任务,而不是启动该任务的新实例
活动,其上的所有其他活动都将关闭,并且
此意图将作为一个整体传递给(现在位于顶部)旧活动
新的意图
我得到了我想要的,但它仍然是onCreate。有什么方法可以启动home而不进入其onCreate吗?您无法控制
活动的生命周期。由Android决定哪些活动继续运行,哪些活动结束。这意味着当一个活动失去焦点时,它不一定会被破坏或关闭,但可能只是失去焦点并继续运行,但也可能不会。这取决于Android;您无法控制此行为
如果您想在给定状态下恢复活动
,则必须保存所有需要的数据,并在onCreate()
中恢复它。您的想法和Android的还不完全兼容
当你“启动家庭”,这意味着它将被启动,这意味着它将被创建
但是,您可以使用启动列表
和详细信息
。然后,您的“主页”按钮将显示您的详细信息活动。在List
的回调中,您只需使用Activity.finish()
通过,在Home
的onActivityResult
中,您只需捕获事件,就知道您现在回来了。哇,很抱歉,我错过了在AndroidManifest.xmlandroid:launchMode中声明的Activity选项=“单任务
。我将删除这个问题。通过使用上述代码,您所做的只是在现有详细信息活动的基础上创建一个新的主页活动。相反,请尝试同时完成(call finish()on)详细活动和列表活动,以使主活动可见。对于那些想知道如何做的人,我从其文档中引用这一点:“系统在新任务的根创建活动,并将意图传递给它。”。但是,如果活动的实例已经存在,系统会通过调用其onNewIntent()方法将意图路由到现有实例,而不是创建一个新实例。“嗨,geeth,是的,我认为它可以工作,但实际上我错过了android:launchMode=“singleTask
:)Hi Class Stacker,实际上有一种方法可以做到这一点,请看我对我的问题的评论。我只是错过了这个选项。我无法想象这种方法有助于逻辑。通常最好有一个与逻辑相匹配的控制流。因为这样,你的“主页”按钮与“返回”按钮正好相反“按钮。除非你的逻辑非常琐碎,否则实现它是没有乐趣的,即使这样,我也不会这么做,因为这是违反直觉的。此外,在其他情况下,您的应用程序将收到新的“主页”意图,您希望能够区分它们。所以,不要按你认为应该的方式去做。因为我考虑到实际上我在我的家庭活动中使用了很多图像,我不想再次重新加载,实际上我没有需要刷新的视图。谢谢你的提醒:)@Rendy我不明白你的意思。在哪种情况下,您认为Android不必重新创建您的“主页”活动
?在我的主页活动中,我需要进行一些图像处理,并通过asynctask完成(并显示进度对话框)。如果我再次重新创建主活动,用户会觉得应用程序可能正在创建新的主屏幕,而不是返回主屏幕:)是的,我们无法控制活动生命周期。然而,实际上我们可以做到。请看我上面的评论,我错过了这个选项android:launchMode=“singleTask
:)