Android:具有noHistory和SharePrefs的登录屏幕,但退出应用程序后,它将返回到登录屏幕

|| 我能够打开该应用程序,它首先打开登录屏幕,登录后将带您到ѭ0。从“ 0”开始,没有任何可登录的内容,它将一直保持会话状态直到注销。但是,当我退出该应用程序时,即使我有一个“ 2”字样也可以返回登录屏幕,该文件名将会话中的用户名保存了下来。我在
manifest
中加了
nohistory=true
。在
MainActivity
中放入意图
mainactivity.class
(如果按返回按钮),原因是当我:
logout > login > mainactivity 
然后按返回按钮将返回注销屏幕(由于
myhistory=true
,登录应该可以)。我的问题是,即使该应用退出了,如何保持用户名在会话中。 下面的链接对我没有太大帮助 在Android中创建登录屏幕/活动的正确方法是什么? 防止用户登录后显示登录屏幕 如何在Android中保留登录凭据并自动登录 我的密码 LOGIN.java
    public class Login extends Activity {
    private EditText etUsername;
    private Button btnLogin;
    private Button btnCancel;
    private TextView lblResult;

    @Override  
    public boolean onKeyDown(int keyCode, KeyEvent event)  
    {          
        if(keyCode==KeyEvent.KEYCODE_BACK)  
        {             
            this.startActivity(new Intent(Login.this,Login.class));  
        }  
        return true;  
    }  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);

        btnLogin.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
            String username = etUsername.getText().toString();

            SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
            SharedPreferences.Editor editor = prefs.edit();
            editor.putString(\"username\", username);

            if(username.equals(\"1111\")){
                lblResult.setText(\"Login successful.\");

             Intent i = new Intent(getApplicationContext(), MainActivity.class);
                startActivity(i);
注销.java
    public class LogoutActivity extends Activity {
    private Button btnLogout;
    private Button btnCancel;
    private TextView lblResult;
    private EditText code;
    @Override  
    public boolean onKeyDown(int keyCode, KeyEvent event)  
    {  
       if(keyCode==KeyEvent.KEYCODE_BACK)  
        {  
            this.startActivity(new Intent(LogoutActivity.this,MainActivity.class));  
        }  
        return true;  
    }  

    @Override
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.logout);

        code = (EditText)findViewById(R.id.codeout);
        btnLogout = (Button) findViewById(R.id.submit);
        btnCancel = (Button) findViewById(R.id.cancel);
        lblResult = (TextView)findViewById(R.id.result);

        btnLogout.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String logout = code.getText().toString();

                SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
                SharedPreferences.Editor editor = settings.edit();
                editor.remove(\"username\");

                if (logout.equals(\"99999\")){
                    lblResult.setText(\"Logout successful\");

                    Intent i = new Intent(getApplicationContext(), Login.class);
                    startActivity(i);
                } else {
                    lblResult.setText(\"Logout failed\");

                }

            }
        });

         btnCancel.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                Intent i = new Intent(getApplicationContext(), MainActivity.class);
                startActivity(i);

            }

    });
    
已邀请:
        在
Login.onCreate()
中,检查SharedPref中的用户ID。如果存在,请直接转到ѭ0。     
        我是否可以在应用程序的初始屏幕用户注销中找到解决方案,然后进入登录屏幕或主屏幕
String unique_id = loginSharedPreferences
                        .getString(\"UniqueId\", \"NA\");

if (unique_id.equals(\"\")) {
    Intent intent = new Intent(Splace_Screen.this,
                                    LoginActivity.class);
    startActivity(intent);

} else {
   Intent intent = new Intent(Splace_Screen.this,
                                    DrawerActivity.class);
   startActivity(intent);
}
finish();
    

要回复问题请先登录注册