Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何开展本案活动?_Android - Fatal编程技术网

Android 如何开展本案活动?

Android 如何开展本案活动?,android,Android,我的应用程序中有3个活动 主页->列表->详细信息 当我进行详细活动时,我希望有一个主页按钮,该按钮可以将我重定向到主页活动并关闭其他活动。然后,我尝试了以下代码: Intent intent = new Intent(this, HomeActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); 由于标志\u活动\u清除\u顶部为: 如果已设置,则正在启动的活动已在中运行 当

我的应用程序中有3个活动

主页->列表->详细信息

当我进行详细活动时,我希望有一个主页按钮,该按钮可以将我重定向到主页活动并关闭其他活动。然后,我尝试了以下代码:

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.xml
android:launchMode中声明的Activity选项=“单任务
。我将删除这个问题。通过使用上述代码,您所做的只是在现有详细信息活动的基础上创建一个新的主页活动。相反,请尝试同时完成(call finish()on)详细活动和列表活动,以使主活动可见。对于那些想知道如何做的人,我从其文档中引用这一点:“系统在新任务的根创建活动,并将意图传递给它。”。但是,如果活动的实例已经存在,系统会通过调用其onNewIntent()方法将意图路由到现有实例,而不是创建一个新实例。“嗨,geeth,是的,我认为它可以工作,但实际上我错过了
android:launchMode=“singleTask
:)Hi Class Stacker,实际上有一种方法可以做到这一点,请看我对我的问题的评论。我只是错过了这个选项。我无法想象这种方法有助于逻辑。通常最好有一个与逻辑相匹配的控制流。因为这样,你的“主页”按钮与“返回”按钮正好相反“按钮。除非你的逻辑非常琐碎,否则实现它是没有乐趣的,即使这样,我也不会这么做,因为这是违反直觉的。此外,在其他情况下,您的应用程序将收到新的“主页”意图,您希望能够区分它们。所以,不要按你认为应该的方式去做。因为我考虑到实际上我在我的家庭活动中使用了很多图像,我不想再次重新加载,实际上我没有需要刷新的视图。谢谢你的提醒:)@Rendy我不明白你的意思。在哪种情况下,您认为Android不必重新创建您的“主页”
活动
?在我的主页活动中,我需要进行一些图像处理,并通过asynctask完成(并显示进度对话框)。如果我再次重新创建主活动,用户会觉得应用程序可能正在创建新的主屏幕,而不是返回主屏幕:)是的,我们无法控制活动生命周期。然而,实际上我们可以做到。请看我上面的评论,我错过了这个选项
android:launchMode=“singleTask
:)