【问题标题】:how to close or exit Android activity如何关闭或退出 Android 活动
【发布时间】:2012-09-26 22:36:06
【问题描述】:

我希望我的应用程序在启动时检查用户名和密码是否保存在 sharedPreferences 中。如果它检测到这些凭据,则会显示一个登录页面,如果没有,则会显示一个注册页面。用户登录到应用程序后,我希望整个应用程序关闭,无论是按下设备的后退按钮还是按下应用程序退出按钮。

除了应用程序正常关闭之外,我一切正常。我以为我编码正确,但我没有。选择退出和设备后退按钮时,如何关闭整个应用程序。

退出方法:

      public void onClick(DialogInterface dialog, int which) {
      // TODO Auto-generated method stub
      finish();
      }
      });
    builder.setNegativeButton("No", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface arg0, int arg1) {
               arg0.cancel();
            }
        });
    AlertDialog alert=builder.create();
    alert.show();

【问题讨论】:

标签: android android-activity sharedpreferences buttonclick


【解决方案1】:

按下后退按钮时,只需在您的活动上调用 finish()。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        finish();
    }
    return super.onKeyDown(keyCode, event);
}

【讨论】:

  • 为什么要为此重写 onKeyDown,而不是使用活动生命周期方法,如 onWindowFocus 或 onPause?
  • 作者特意问了按回退时如何操作。如果你不认为他们真的是这个意思,我邀请你与他们就这个主题展开对话。
  • 有一个更适合重写的显式 onBackPressed 方法。并且默认已经调用了finish()。
  • @Jeffrey 按下后退按钮时,我指定的两个生命周期方法都会被调用。
【解决方案2】:
public void AppExit()
{

 this.finish();
 Intent intent = new Intent(Intent.ACTION_MAIN);
 intent.addCategory(Intent.CATEGORY_HOME);
 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 startActivity(intent);

/*int pid = android.os.Process.myPid();=====> use this if you want to kill your activity. But its not a good one to do.
 android.os.Process.killProcess(pid);*/

 }

当您想退出应用程序时调用此方法。

假设您想在按下后退按钮时退出应用程序,只需这样做

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
    AppExit();
}
return super.onKeyDown(keyCode, event);
}

【讨论】:

    【解决方案3】:

    您可以使用此代码关闭或退出您的应用程序。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 2010-12-02
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      相关资源
      最近更新 更多