可能重复:
android按下后退按钮应该退出应用程序
我正在构建一个注册和登录屏幕只是为了练习。所以我放了 SharedPreferences 以便当用户再次打开应用程序时,它将引导他们登录活动,而不是从注册重新开始。但是,当我从登录活动中按下返回按钮时,它仍然会带我返回注册活动,这可能会更改已保存的 SharedPreferences。我想禁用此功能,当用户按下后退按钮时如何简单地退出应用程序?
谢谢,
可能重复:
android按下后退按钮应该退出应用程序
我正在构建一个注册和登录屏幕只是为了练习。所以我放了 SharedPreferences 以便当用户再次打开应用程序时,它将引导他们登录活动,而不是从注册重新开始。但是,当我从登录活动中按下返回按钮时,它仍然会带我返回注册活动,这可能会更改已保存的 SharedPreferences。我想禁用此功能,当用户按下后退按钮时如何简单地退出应用程序?
谢谢,
如果您不希望后退按钮返回注册屏幕,最干净的解决方案是使用noHistory
清单中的属性将其从活动历史记录中排除,即
<activity
android:name=".RegistrationActivity"
...
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
}
此方法在按下后退按钮时捕获。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() ==KeyEvent.ACTION_DOWN)
{
//Handler for KEYCODE_BACK Pressing.
}
}
如果要关闭活动:
public void finish ()
.当您的活动完成并应该关闭时调用它。ActivityResult 被传播回通过 onActivityResult() 启动你的人。
如果要关闭通过 startActivityForResult 启动的另一个活动:
public void finishActivity (int requestCode)
.Force 完成您之前使用 startActivityForResult(Intent, int) 启动的另一个活动。
除了 Paul-Jan 的回答,您可以在注册活动中调用 startActivity(...) 后立即调用 finish() 。