【发布时间】:2014-08-17 16:52:30
【问题描述】:
我阅读了很多关于这个主题的帖子,但我找不到任何适合我需要的东西。
我有一个包含 3 个活动的应用程序(在这里我将它们称为屏幕,更直观):A (MainActivity)、B 和 C。
屏幕 A 启动另一个进程,从该进程中检索一些信息并根据答案设置布局。然后它让你有机会做某事(写一篇文章)。这是在 OnCreate() 上完成的。
屏幕 B 不是很有趣(显示文本并允许您对其进行编辑)。
屏幕 C 有一个退出应用程序的按钮(基本上是启动 home 活动)。 C 还关闭了我们在 A 上启动的进程(在向它传达了一些信息之后)。
到目前为止一切顺利。
问题是当我重新启动我的应用程序时,我再次看到屏幕 C。这对我不好,因为我希望用户能够编辑文本,而不必返回第一个或第二个屏幕(不是因为它很难,而是因为我需要他看到呈现在在他做任何事情之前屏幕 A。而这不能在 C 之后完成,因为在 C 完成之后,除非他决定再次启动应用程序)。
这意味着当我到达屏幕 C 并按下按钮时,我的应用程序已完成,我在那里无事可做(但要重新开始)。但是,如果我的应用在屏幕 B 上暂停,则无需重新开始 - 我可以回到它并从那里继续(常规的 Android 行为)。
所以我设置了android:clearTaskOnLaunch="true"但现在我有两个问题:
1. 即使应用程序在 B 上暂停,它现在又重新开始(有点,见 #2),这不是我需要的。
2. 它并没有真正重新开始......是的,我看到了屏幕 A。但是我在 OnCreate() 上所做的所有事情都没有再次完成,这意味着我的其他进程没有启动并运行,然后我的应用程序崩溃了,因为我没有人可以说话.....
这种情况有什么解决办法吗? 只有在应用程序的上一次运行完成之后(我们按下屏幕 C 上的单个按钮并返回主屏幕),我才需要重新开始(但真的很新鲜,我在 OnCreate() 上所做的所有事情都会再次完成)。 在任何其他暂停情况下(如果我们还没有按下按钮,在 A、B 甚至 C 中)我想要正常的 Android 行为(即返回到同一屏幕)。
任何帮助将不胜感激。
【问题讨论】:
标签: android oncreate main-activity