【发布时间】:2014-11-13 09:14:58
【问题描述】:
我的应用程序中有这样的流程:
对于新用户:
启动画面 --> 登录活动 --> 主页活动
对于已经注册的用户:
启动画面 --> 主页活动
基本上,启动画面有一个 if else 来决定去哪个活动。一旦用户第一次登录,他的状态就会保存在一个首选项变量中,以便启动屏幕决定下次不打开登录活动。
现在的情况就是这样。如果新用户登录并进入家庭活动,然后注销。他被重定向到登录屏幕,这几乎是应该发生的。但是,如果现有用户打开应用程序,他会看到启动画面并直接移动到 Home Activity。现在,如果用户注销,他就会退出应用程序。发生这种情况是因为 Login Activity 没有创建任何实例,因此完成 Home Activity 会完成整个应用程序。注销实际上完成了 Home Activity,自然应该打开最后一个活动的活动。这没有发生。
我想做的是,我想实现一个逻辑来检查登录活动是否可用。如果可用,则将调用 finish(),否则将通过 Intent 调用登录活动。
请告诉我如何做到这一点。
P.S:我的应用使用自定义主题和自定义操作栏。如果我同时调用完成和意图,或者我使用标志来清除现有活动,则会出现奇怪的过渡效果,会在瞬间显示黑色标准操作栏,从而造成糟糕的用户体验。
【问题讨论】:
标签: java android android-activity activity-lifecycle activity-finish