1

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

我有一个登录的应用程序。每次打开应用程序时,您都应该被迫通过该登录页面。您应该永远无法恢复登录以外的任何活动。

在清单中我有

        android:clearTaskOnLaunch="true"

在我希望用作登录活动的主要活动上,

        android:finishOnTaskLaunch="true"

        android:excludeFromRecents="true"

关于其余的活动。

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

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

也许如果有一种方法可以检测到活动启动来自应用程序图标按下,我可以通过这种方式进行管理,但我认为这也不可能。

4

2 回答 2

1

在任何一种情况下onResumeonRestart您都可以检查一系列标志,例如登录超时,然后使用 强制用户回到登录活动Intent,同时完成原始活动。

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

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

“真”值意味着活动不会留下历史痕迹。它不会保留在任务的活动堆栈中,因此用户将无法返回它。

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

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

更多信息在这里:http: //developer.android.com/guide/topics/manifest/activity-element.html

于 2013-07-03T15:25:06.977 回答
0

最简单和最快的方法可能是使用 finish(); 终止活动;在它的 onPause() 中,因为当应用程序进入后台时会调用它。

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

于 2013-07-03T15:22:44.943 回答