2010-01-25 38 views
15

我有一个应用程序与2个活动,LogonAct和MainAct。 LogonAct是一个登录活动,我想强制用户每次返回到应用程序时都要经历一次。我已经在LogonAct上设置了android:clearTaskOnLaunch =“true”当用户离开应用程序时,如何清除栈回到根活动?

当我第一次启动该应用程序,我经过屏幕的这个序列,

Home -> LogonAct -> MainAct -> Home

我然后按照这个顺序,

LogonAct -> Back -> MainAct

为什么把我带回到MainAct ?自从LogonAct有之后,该活动是不是应该关闭android:clearTaskOnLaunch =“true”。当我点击LogonAct的后退按钮时,我预计会被带回家。

从AndroidManifest.xml中的相关片段,

<activity android:name=".LogonAct" 
      android:clearTaskOnLaunch="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 

    <activity android:name=".MainAct"> 
     <meta-data android:name="android.app.default_searchable" 
        android:value=".SearchResults" /> 
    </activity> 

我使用的是1.5。

任何帮助表示赞赏。

+0

您可以编辑您的问题,添加你的Manifest或者至少是LogonAct的元素,因为这样可以帮助人们发现是否有错误。 – 2010-01-25 09:25:45

+0

来自AndroidManifest.xml的片段包含Dave。我应该在问题中包括他们,但是我没有面前的代码。 – Adrian 2010-01-25 18:33:43

回答

11

android:clearTaskOnLaunch的文档中提到,只要[活动]从主屏幕重新启动,该属性就适用“。

然而,在你的情况你按下首页按钮返回到主屏幕,而不是按后退按钮。这意味着您的应用程序实际上并未重新启动,因为MainAct未“完成”。只有当你按返回(或者Android杀死任务以节省资源等)时才会发生这种情况。

因为你只需要在应用程序中的两项活动,您可以为MainActandroid:noHistory属性,从而确保用户永远不能恢复到它,必须通过LogonAct

顺便说一句,在用户每次离开应用程序(例如,他们接到电话)时,强迫用户重新登录似乎有点令人讨厌。
您可以在应用程序的永久性存储中保留超时的会话令牌,或者使用服务保持网络连接打开(如果这是您的应用程序的工作方式—),但这当然取决于您和您的要求。 :)

+1

感谢您的帮助克里斯托弗。 我还有一些活动可以在MainAct之后发布,因此如果我在MainAct上使用android:noHistory,则当我选择Back时,这些其他活动会回退到登录屏幕。 我完全同意,每次登录应用程序都不太理想。这是一个密码管理器应用程序,所以我不想让它访问太久。我要尝试做的是有一个定时器,它的工作方式与sudo类似,即如果密码从最后一次输入起超过x秒,就要求输入密码。 – Adrian 2010-01-25 19:48:48

+3

啊。在这种情况下,您可以在每个'Activity'的'onResume()'中添加一个快速方法调用,以检查是否已经过了特定的时间段。如果是这样,然后调用'finish()'并激发一个'Intent'将它们发送回'LogonAct'。 – 2010-01-25 19:54:53

15

你可以做到以下几点:
1组clearTaskOnLaunch = “真” 在AndroidManifest,在主要活动
2的声明。在活动必须关闭:

@Override 
public void onBackPressed(){ 
    moveTaskToBack(true); 
} 

,所以如果用户按下回 - 它回来到主屏幕 如果用户再次启动aplication - 任务堆栈清除,当他来到根主要活动

+0

谢谢muzhig您的描述帮助我很多。 – amity 2011-09-26 04:55:04

+0

感谢muzhig..it帮助我... – 2011-11-25 12:32:18

相关问题