我正在构建一个注册和登录屏幕,仅用于练习。所以我放置了SharedPreferences,以便当用户再次打开应用程序时,它会将它们引导到登录活动而不是从注册中重新开始。但是,当我从登录活动中按回按钮时,它仍然会让我回到注册活动,这可能会更改已保存的SharedPreferences。我想禁用此功能,如何在用户按下后退按钮时退出应用程序?
谢谢,
答案 0 :(得分:9)
如果您从不希望后退按钮返回到注册屏幕,那么最干净的解决方案是使用清单中的noHistory
属性将其从活动历史记录中排除,即< / p>
<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>
答案 1 :(得分:1)
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
}
按下后退按钮时会捕获此方法。
答案 2 :(得分:0)
@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)开始的另一个活动。
答案 3 :(得分:0)
除了Paul-Jan的回答之外,您可以在注册活动中调用startActivity(...)后立即调用finish()。