当应用程序从后台进入前台时,如何显示特定活动?

时间:2013-05-24 18:31:06

标签: java android android-activity background-process

我有一个包含多个活动的应用程序。其中一个是Login活动,此活动在清单中的应用程序中定义为MAIN:

<activity
        android:name="com.company.myapp.AuthorizationMainActivity"
        android:label="@string/app_name" 
        android:launchMode="singleTask" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

当我的应用程序进入后台时出现问题(例如我按下主页按钮)然后我再次打开应用程序 - 向我显示了登录页面。如何在应用程序进入后台时显示对用户有效的活动?

3 个答案:

答案 0 :(得分:1)

如果您没有明确要将其用于特殊要求,请删除“android:launchMode =”singleTask“。

“singleTask”活动允许其他活动成为其任务的一部分。它始终是其任务的根源,但其他活动(必然是“标准”和“单一活动”)可以启动到该任务中。 (在Android开发者处找到here

答案 1 :(得分:0)

使用虚拟活动作为启动的基本活动,并在该活动中检查您是否需要显示登录活动或其他活动。然后从虚拟活动开始您想要去的特定活动。

确保您在清单中将虚拟活动设置为noHistory,以便用户无法导航回来

if(needsLogIn){
    Intent i = new Intent(this,LoginActivity.class);
    startActivity(i);
}else{
    Intent i = new Intent(this,OtherActivity.class);
    startActivity(i);
}

答案 2 :(得分:0)

删除android:launchMode =“singleTask”&gt; singletask活动将是root,当你按下home按钮时,它上面的所有活动都将被删除。当您删除android:launchMode =“singleTask”时,将发生默认行为,即当您按下主页按钮然后再次启动时,它将打开您离开的位置的活动。请查看链接http://developer.android.com/guide/components/tasks-and-back-stack.html