我一直在做我的研究,但我觉得我好像错过了什么。
我有一个登录的应用程序。每次打开应用程序时,都应该强制执行该登录页面。您永远不能恢复登录以外的任何活动。
在清单中我有
android:clearTaskOnLaunch="true"
关于我希望用作登录活动的主要活动,
和
android:finishOnTaskLaunch="true"
以及
android:excludeFromRecents="true"
其他活动。
当您从登录到另一个活动,回家并通过图标重新启动应用程序时,会出现问题情况。它应该跳回到登录页面,但它不会。有什么想法吗?
我也一直在安装为常规apk,而不是通过eclipse安装,因为我知道eclipse和一些清单属性存在问题。
也许如果有办法检测到活动发布来自app图标按下,我可以这样管理它,但我认为这也不可能。
答案 0 :(得分:1)
在onResume
或onRestart
中,您可以检查一系列标记,例如登录超时,然后使用Intent
强制用户返回登录活动。同时完成原始活动。
我喜欢这种方法,或只是在onPause
或onStop
中完成应用,因为它让您有机会在盲目关闭应用之前进行一些检查。
或者,您可以尝试在清单文件中使用android:noHistory
标记。
值“true”表示活动不会留下历史记录。它不会保留在任务的活动堆栈中,因此用户将无法返回该任务。
还有其他标签,例如android:finishOnTaskLaunch
无论何时用户再次启动其任务(在主屏幕上选择任务),是否应关闭(完成)活动的现有实例 - 如果应该关闭则返回“true”,并且“false”如果不。默认值为“false”。
此处提供更多信息:http://developer.android.com/guide/topics/manifest/activity-element.html
答案 1 :(得分:0)
最简单快捷的方法可能是使用finish()终止活动;在其onPause()中,因为当App被放入后台时会调用它。
也可以使用XML配置来解决,但不是我所知道的。