在我的应用程序中,我有以下过程来登录用户:
用户在MainActivity
上输入其凭据,并使用该代码重定向到HomeActivity
进行导航:
Intent accueilIntent = new Intent(getApplicationContext(), HomeActivity.class);
accueilIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK
| Intent.FLAG_ACTIVITY_NEW_TASK);
finish();
startActivity(accueilIntent);
当用户在HomeActivity
时,他可以通过注销按钮注销。由于事件被触发,我想杀死所有活动并将用户重定向到登录活动(MainActivity
)。因此,对事件触发的代码如下:
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
用户被重定向到MainPage
。然后当我按下主页按钮返回Android主屏幕然后我回到应用程序时,会出现右MainActivity
。但是,当我按下本机后退按钮返回到Android主屏幕然后我回到应用程序时,HomeActivity
出现(之前应该销毁的那个)而不是MainActivity
。
有人能告诉我为什么在这种情况下我会回到HomeActivity
而不是MainActivity
吗?
答案 0 :(得分:2)
1]在finish()
startActivity()
2]添加FLAG_ACTIVITY_NO_HISTORY
标志。
Intent intent = new Intent(mContext, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
答案 1 :(得分:0)
如果您希望用户在HomeActivity上按下按钮时返回MainAcitvity,则HomeActivity的父级应为MainActivity。
在您的manifest.xml文件中,在HomeActivity的标签中添加以下内容:
<activity
android:name=".HomeActivity"
android:parentActivityName=".MainActivity" >
....
</activity>