我有一个包含多个活动的应用程序。其中一个是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>
当我的应用程序进入后台时出现问题(例如我按下主页按钮)然后我再次打开应用程序 - 向我显示了登录页面。如何在应用程序进入后台时显示对用户有效的活动?
答案 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