android - 应用程序退出使用 Back Pressed 事件
问题描述
我的应用程序的主要活动是“LoginActivity”。如果用户登录一次绕过登录活动,应用程序每次都会打开主活动。我想在 Main Activity 上使用后按事件退出应用程序。如果我使用“finish();” 在主活动上,我的应用程序正在工作,我想关闭应用程序。,我该如何解决这个问题。
登录活动:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
boolean alreadysignIn = sharedPreferences.getBoolean("haveCurrUser", false);
if (alreadysignIn) {
GoToMainActivity();
}
private void GoToMainActivity() {
//Using For by-pass to log in Activity.
//Use for log out.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
sharedPreferences.edit().putBoolean("haveCurrUser", true).apply();
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
主要活动:
private long backPressedTime;
....
@Override
public void onBackPressed() {
if (backPressedTime + 2000 > System.currentTimeMillis()) {
snackbar.dismiss();
super.onBackPressed();
finish();
} else {
snackbar = Snackbar.make(layoutMainContainer, getResources().getString(R.string.exit_info), Snackbar.LENGTH_SHORT);
snackbar.show();
}
backPressedTime = System.currentTimeMillis();
}
解决方案
你可以使用:
System.exit(0);
在您的 onBackPressed() 方法中。
替换完成();与 System.exit(0);
希望这是您正在寻找的答案。
System.exit(0)
VM 停止进一步执行,您的程序将退出。
推荐阅读
- c# - 执行多个进程时出现静态数据表问题
- python - 如何将 Python 和 QML 与 PySide2 连接起来?
- variables - SSIS 使用 ODBC 在 SQL 命令中传递参数
- python-3.x - 在 Python 中创建一个集合并将另一个列表中的值附加到它
- javascript - 如何向可能尚不存在的对象添加字段?
- c++ - LoadLibray FileNotFound 取决于哪个应用程序调用
- rust - 恐慌后有什么理由加分号吗?
- ios - 我需要对这段代码执行一个无限循环的后台线程
- python - 如何从熊猫数据框列中选择日期间隔?
- javascript - Jquery:当元素的 id 改变时删除 $('#id').on(...) 监听器