我有一个中央MainCheckerActivity,它检查所有设置是否正常。此 MainCheckerActivity 被许多活动 A、B、C 调用,..
如果 MainCheckerActivity 发现缺少某些设置,它会显示一个对话框并(当前)完成,以便流返回到调用活动 A、B、C...
然后用户必须手动导航到设置活动从 A,B,C...
所以基本上现在:
A -> MainCheckerActivity -> shows the dialog -> finishes MainCheckerActivity -> A -> SettingsActivity
我将如何实现一个对用户来说更方便的逻辑流程,如下所示:
A -> MainCheckerActivity -> shows the dialog -> finishes MainCheckerActivity -> SettingsActivity -> A
非常感谢!
如果您使用 Intent.FLAG_ACTIVITY_NO_HISTORY
启动 MainCheckerActivity ,那么它将不会保存在任务的历史记录堆栈中。如果 MainCheckerActivity 启动 SettingsActivity,当用户在 SettingsActivity 中单击"返回"时,他将返回到启动 MainCheckerActivity 的活动(即:描述中的 A、B 或 C)。
Google Maps应用程序也做了类似的事情。如果您忘记打开GPS卫星,它将弹出一个对话框,询问诸如"您想打开GPS卫星和/或wifi以提高位置的准确性吗?工作流程如下:
-
您
MainActivity
启动谷歌地图(并搜索"我的位置")。 -
该应用程序意识到您忘记打开GPS卫星和/或wifi互联网。弹出一个对话框,询问您是否要调整设置。选项是"跳过"(负按钮)和"设置"(正按钮)。还有一个"默认执行此操作"...您可以考虑添加这样的东西,以防您的设置要求开始惹恼用户。:)
-
(a) 如果单击"跳过",请关闭对话框,您仍处于
MainActivity
状态。(b) 如果单击"设置",则启动
SettingsActivity
。您可以更改设置。然后,完成后,单击"返回",保存更改,然后返回到MainActivity
。
换句话说,最好的主意似乎是将MainCheckerActivity
与活动合并A
、B
和C
。消除不必要的活动几乎总是会带来更好的用户体验。:)