2017-08-01 110 views
0

我已将Google sign in sample application与我的应用程序主要活动集成在一起。谷歌登录 - 需要永久保存用户详细信息退出

我在导航标题中有一个按钮来启动登录活动。 当我用我的Google帐户登录时,它会将我的姓名和电子邮件ID提取到导航标题中。

现在的问题是,如果我退出了这个应用程序,我需要每次重新登录。我如何保存登录信息。

我已经通过多篇文章谈论共享偏好,但共享偏好不适用于我。

下面是我试过的代码片段之一。我打电话storeUserDetails()onBackPressedgetUserDetails()onCreate()

public void storeUserDetails(String userName, String emailID){ 
    mSharedPreference = getSharedPreferences("userDetails",MODE_PRIVATE); 
    SharedPreferences.Editor mEditor = mSharedPreference.edit(); 
    mEditor.putString("userFullName",userName); 
    mEditor.putString("userEmailID",emailID); 
    mEditor.apply(); 
} 

private String getUserDetails(){ 
    mSharedPreference = getSharedPreferences("userDetails",MODE_PRIVATE); 
    return mSharedPreference.getString("userFullName","@gmail.com"); 
} 

尝试这个教程以及 https://www.tutorialspoint.com/android/android_shared_preferences.htm

+0

“不工作”具体请,一起去阅读本https://developer.android.com/guide/topics/data/data-storage.html –

+0

当我重新启动应用程序,它可以追溯到这是原始状态。姓名和电子邮件ID不会显示在导航标题中。我需要再次登录。 –

回答

0
//First instantiate sharedpreferences 

    SharedPreferences sharedpreferences; 
    sharedpreferences=getSharedPreferences(MyPREFERENCES,Context.MODE_PRIVATE); 

    private String name,phone,email; 


    //OnPause method to save shared preferences when activity is destroyed 

    @Override 
    public void onPause() { 
     super.onPause(); // Always call the superclass method first 

    SharedPreferences.Editor editor = sharedpreferences.edit(); 

     editor.putString(Name, name); 
     editor.putString(Phone, phone); 
     editor.putString(Email, email); 
     editor.commit(); 
    } 

    //OnResume method used to retrieve sharedpreferences 

    @Override 
    public void onResume() { 
     super.onResume(); // Always call the superclass method first 

    SharedPreferences prefs = this.getSharedPreferences("MyPREFERENCES", Context.MODE_PRIVATE); 
    name = prefs.getString("Name",""); 
    phone = prefs.getString("Phone",""); 
    email = prefs.getString("Email",""); 

    } 

而且处理登录问题,你可以使用你的发射活动,并sharedpreferences检查,如果名称为空,如果不然后导航到您的主要活动,如果它然后导航到登录,然后在您的注销功能只是确保您清除共享首选项。

相关问题