创建登录类型的活动并强制它成为唯一的开放点

时间:2013-07-03 15:19:25

标签: java android android-activity

我一直在做我的研究,但我觉得我好像错过了什么。

我有一个登录的应用程序。每次打开应用程序时,都应该强制执行该登录页面。您永远不能恢复登录以外的任何活动。

在清单中我有

        android:clearTaskOnLaunch="true"

关于我希望用作登录活动的主要活动,

        android:finishOnTaskLaunch="true"

以及

        android:excludeFromRecents="true"

其他活动。

当您从登录到另一个活动,回家并通过图标重新启动应用程序时,会出现问题情况。它应该跳回到登录页面,但它不会。有什么想法吗?

我也一直在安装为常规apk,而不是通过eclipse安装,因为我知道eclipse和一些清单属性存在问题。

也许如果有办法检测到活动发布来自app图标按下,我可以这样管理它,但我认为这也不可能。

2 个答案:

答案 0 :(得分:1)

onResumeonRestart中,您可以检查一系列标记,例如登录超时,然后使用Intent强制用户返回登录活动。同时完成原始活动。

我喜欢这种方法,或只是在onPauseonStop中完成应用,因为它让您有机会在盲目关闭应用之前进行一些检查。

或者,您可以尝试在清单文件中使用android:noHistory标记。

  

值“true”表示活动不会留下历史记录。它不会保留在任务的活动堆栈中,因此用户将无法返回该任务。

还有其他标签,例如android:finishOnTaskLaunch

  

无论何时用户再次启动其任务(在主屏幕上选择任务),是否应关闭(完成)活动的现有实例 - 如果应该关闭则返回“true”,并且“false”如果不。默认值为“false”。

此处提供更多信息:http://developer.android.com/guide/topics/manifest/activity-element.html

答案 1 :(得分:0)

最简单快捷的方法可能是使用finish()终止活动;在其onPause()中,因为当App被放入后台时会调用它。

也可以使用XML配置来解决,但不是我所知道的。