我有一个登录活动,我只想在启动时显示以及用户是否注销。因此,当用户处于登录活动并单击后退按钮时,我想关闭应用程序而不是返回登录活动。
我已成功覆盖后退按钮回调:
public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
{
if (keyCode == Keycode.Back)
{
Console.Out.WriteLine("Close activity");
return true;
}
return base.OnKeyDown(keyCode, e);
}
停止后退按钮返回上一个活动。但是,在Finish();
之前添加return true
确实会重新显示登录活动:(
这是我登录后使用的代码:
Intent activity = new Intent(this, typeof(WorkOrderActivity));
StartActivity(activity);
尝试了几个Intentflags和LaunchModes,但无法让它工作。根据日志,登录后只启动一项活动。
答案 0 :(得分:2)
试试这个有用..
Intent mIntent = new Intent(this, WorkOrderActivity.class);
mIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(mIntent);
finish();
答案 1 :(得分:2)
在Activity
finish()
的正常行为
finish()
方法只关闭调用它的Activity
您可以隐藏登录表单并检查onResume()
登录活动的用户登录状态(如果他已登录则完成登录)
答案 2 :(得分:0)
从Login活动开始另一项活动时,您应该清除堆栈。
Intent intent = new Intent(LoginActivity.this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
当用户注销时,您可以启动LoginActivity。
答案 3 :(得分:0)
public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
{
if (keyCode == Keycode.Back)
{
moveTaskToBack(true);
return true;
}
return base.OnKeyDown(keyCode, e);
}