我在登录活动中使用了共享偏好,如果值是 在共享偏好中可用,它将打开HomeActivity
但是,当我按下后退按钮应用程序转到我的问题时出现了问题 以前的活动即。 loginActivity我正在检查 sharedpreference值以打开HomeActivity。这使我的应用程序 回到HomeActivity。
LoginActivity.java 代码
@Override
protected void onResume() {
super.onResume();
//In onresume fetching value from sharedpreference
SharedPreferences sharedPreferences = getSharedPreferences(SharedPrefConfig.SHARED_PREF_NAME,Context.MODE_PRIVATE);
loggedIn = sharedPreferences.getBoolean(SharedPrefConfig.LOGGEDIN_SHARED_PREF, false);
username = sharedPreferences.getString(SharedPrefConfig.USERNAME_SHARED_PREF, null);
if(loggedIn){
//We will start the Home Activity
Intent intent = new Intent(this,HomeActivity.class);
startActivity(intent);
}
}
HomeActivity.java 代码
boolean doubleBackToExitPressedOnce = false;
@Override
public void onBackPressed() {
if (doubleBackToExitPressedOnce) {
super.onBackPressed();
return;
}
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce=false;
}
}, 2000);
}
答案 0 :(得分:0)
请在意向通话时完成登录活动 添加这个
Intent intent = new Intent(this,HomeActivity.class);
startActivity(intent);
finish();
答案 1 :(得分:0)
当您点击退出时,请编写此代码。因此它会将您重定向到LoginActivity。
Intent logoutIntent = new Intent(HomeActivity.this, LoginActivity.class);
logoutIntent.putExtra("isFromLogout", true);
logoutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(logoutIntent);
finish();
在LoginActivity中写下代码。
boolean isFromLogout = getIntent().getBooleanExtra("isFromLogout", false);
if (!isTaskRoot() && !isFromLogout) {
finish();
return;
}
如果您想从您的应用程序注销,上面的场景将帮助您。现在,当您在主页上并按下后退按钮并想要在后台关闭应用程序时,请使用以下代码。
private void minimizeApp() {
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
}
答案 2 :(得分:0)
您的应用应如何运作?
HomeActivity
后关闭应用。 最简单的方法是在开始家庭活动后完成登录活动。
Intent intent = new Intent(this, HomeActivity.class);
startActivity(intent);
finish();
HomeActivity
show login活动。您可以在SharedPreferences
课程的onDestroy
方法中清除HomeActivity
。因此,在登录活动的onResume
中,什么都不会得到任何东西,并且不会打开任何东西。
另一种方法 - 检查HomeActivity
结果。为此需要更改开始代码 - 放置startActivityForResult
方法调用。
Intent intent = new Intent(this, HomeActivity.class);
startActivityForResult(intent, 0);
然后在onActivityResult
登录活动方法中,执行一些操作以禁用HomeActivity
打开(例如,再次清除SharedPreferences
)。
答案 3 :(得分:-1)
使用finish()方法。它会破坏活动。
Intent intent = new Intent(this, HomeActivity.class);
startActivity(intent);
finish();