Android - 按下后退按钮时如何退出活动?

时间:2012-10-02 17:26:45

标签: android button back

  

可能重复:
  android pressing back button should exit the app

我正在构建一个注册和登录屏幕,仅用于练习。所以我放置了SharedPreferences,以便当用户再次打开应用程序时,它会将它们引导到登录活动而不是从注册中重新开始。但是,当我从登录活动中按回按钮时,它仍然会让我回到注册活动,这可能会更改已保存的SharedPreferences。我想禁用此功能,如何在用户按下后退按钮时退出应用程序?

谢谢,

4 个答案:

答案 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()。