按下后退按钮的Android跳过活动

时间:2011-04-08 10:56:03

标签: android android-activity

我有一个用户登录的登录屏幕。之后,用户将进入主屏幕。

现在我的问题是当按下后退按钮时,用户再次进入登录屏幕。

有没有办法解决这个问题?

我已经尝试在finish()之后立即调用startActivity(),但它只会导致应用程序崩溃,并且似乎也不是一个好的解决方案。

4 个答案:

答案 0 :(得分:45)

在清单中,添加android:noHistory="true"作为登录活动的属性。

答案 1 :(得分:6)

finish()之后调用startActivity()即可。您应该调查在这种情况下它崩溃的原因。

答案 2 :(得分:1)

考虑启动主应用程序,然后启动登录屏幕作为自定义模式对话框。

模态发布的提示:

  1. builder.setCancelable(false)
  2. NOT 使用静态方法并在开源EULA示例中调用 show()。如果用户转动电话,则此实现失败。而是使用标准模式 onCreateDialog getInstanceMyDialog showDialog(int)
  3. 如果使用 startActivityForResult 调用模式对话框,则模态对话框可以返回数据,或者模式对话框可以写入自定义首选项文件。

答案 3 :(得分:0)

  1. 如果您再也不会返回登录活动,请在清单上添加android:noHistory=true
  2. 如果您只想从特定活动(例如密码活动)返回“登录”,请覆盖onBackPressed()

    @Override public void onBackPressed() { super.onBackPressed(); }

    “主屏幕”的

    ,位于“登录/密码”活动之后,带有以下代码,

    Intent homeIntent = Intent(Intent.ACTION_MAIN); homeIntent.addCategory( Intent.CATEGORY_HOME ); homeIntent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP; startActivity(homeIntent);

    这将使您的应用程序在按下时的次数降到最低,并且不会返回“登录/密码”活动。

  3. 如果您想终止该应用程序,请使用

    android.os.Process.killProcess(android.os.Process.myPid());

  4. 退出申请

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){ this.finishAffinity() }