Android. How to save user name and password after the app is closed?

后端 未结 4 1065
走了就别回头了
走了就别回头了 2020-12-09 01:07

I am writing an application with login details (username and password).
I want to make it so that when the user closes the application and starts it again later he/she d

相关标签:
4条回答
  • 2020-12-09 01:15

    OK so far I think your code is correct but you dont know where to implement it.

    So there should be a point where your login is successful and you want to open another Activity in your app and for that you must be calling an Intent.

    Therefore all you need to do is when you fire the Intent on successful login you can call your saveLoginDetails() method like this.

    if(*successful login condition*){
        Intent intent=new Intent(CurrentActivity.this,NextActivity.class);
        saveLoginDetails();
        startActivity(intent);
    }
    

    and whenever the user logout you can implement your removeLoginDetails() method.

    Hope it helps... Cheers... :)

    0 讨论(0)
  • 2020-12-09 01:20

    I suggest, you save the login details in a file with simple encryption.

    password = 1234qwer encryptedPassword = 149250351452q113w119e101r114

    OnStop SaveLoginData

    OnStart ReadLoginData

    0 讨论(0)
  • 2020-12-09 01:34

    Try this way: defined Preferences first

    private static final String PREFS_NAME = "preferences";
    private static final String PREF_UNAME = "Username";
    private static final String PREF_PASSWORD = "Password";
    
    private final String DefaultUnameValue = "";
    private String UnameValue;
    
    private final String DefaultPasswordValue = "";
    private String PasswordValue;
    

    And onPause()

    @Override
    public void onPause() {
        super.onPause();
        savePreferences();
    
    }
    

    And onResume()

    @Override
    public void onResume() {
        super.onResume();
        loadPreferences();
         }
    

    And here savePreferences()

    private void savePreferences() {
        SharedPreferences settings = getSharedPreferences(PREFS_NAME,
                Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = settings.edit();
    
        // Edit and commit
        UnameValue = edt_username.getText();
        PasswordValue = edt_password.getText();
        System.out.println("onPause save name: " + UnameValue);
        System.out.println("onPause save password: " + PasswordValue);
        editor.putString(PREF_UNAME, UnameValue);
        editor.putString(PREF_PASSWORD, PasswordValue);
        editor.commit();
    }
    

    And here loadPreferences()

    private void loadPreferences() {
    
        SharedPreferences settings = getSharedPreferences(PREFS_NAME,
                Context.MODE_PRIVATE);
    
        // Get value
        UnameValue = settings.getString(PREF_UNAME, DefaultUnameValue);
        PasswordValue = settings.getString(PREF_PASSWORD, DefaultPasswordValue);
        edt_username.setText(UnameValue);
        edt_password.setText(PasswordValue);
        System.out.println("onResume load name: " + UnameValue);
        System.out.println("onResume load password: " + PasswordValue);
    }
    
    0 讨论(0)
  • 2020-12-09 01:35

    I high not recommend your logic ! I recommend you toAccountManager API to authenticate and store the users credentials, or write your own account manager, always use this AccountManager which only stores your auth-token.

    Account Manager's data can also be accessed through a root!

    For your logic at least try to to use SharedPreferences in secured way otherwise with root access we can get SharedPreferences data from the mobile!

    0 讨论(0)
提交回复
热议问题