我有LoginActivity,在成功登录后,我通过intent启动MainActivity并完成LoginActivity。
我按下后退按钮,然后通过图标打开应用程序,它显示我的MainActivity但如果我按下后退按钮后从最近的应用程序列表中打开应用程序,所以我看到LoginActivity
我已经检查过LoginActivity是否被销毁
怎么可能?
清单
<activity android:name=".LoginActivity" />
<activity android:name=".MainActivity"
android:launchMode="singleTask" />
启动MainActivity
Intent intent = new Intent(getActivity(), MainActivity.class);
mProgressDialog.dismiss();
startActivity(intent);
getActivity().finish();
答案 0 :(得分:2)
删除android:launchMode="singleTask"
为什么要添加launchMode,添加此项,您只能获取其实例一次。默认为“标准”,有关详细信息,请查看documentation。
答案 1 :(得分:0)
Docs说:
&#34;标准&#34;和&#34; singleTop&#34;模式在一个方面彼此不同:每当有一个&#34;标准的新意图&#34; activity,创建类的新实例以响应该意图。每个实例处理一个intent。同样,一个新的&#34; singleTop&#34;也可以创建活动来处理新意图。但是,如果目标任务已在其堆栈顶部具有活动的现有实例,则该实例将接收新意图(在
onNewIntent()
调用中);没有创建新实例。
因此,您不需要singleTask
启动模式。除此之外,我无法看到<intent-filter>
LoginActivity
为MAIN
行为和LAUNCHER
类别。