如何在Android中的本地或会话存储中存储令牌?

时间:2016-11-04 07:07:51

标签: android web-services soap local-storage sessionstorage

我正在创建一个与SOAP Web服务交互的应用程序,以从数据库中获取数据。当用户成功登录时,它会通过Web服务生成令牌。稍后将在其他活动中使用此令牌来调用Web服务方法。我的问题是,如何在需要时将该令牌传递给下一个活动,并在用户注销之前将其维护。

MainActivity.java

SharedPreferences preferences = getApplicationContext()。getSharedPreferences(“YourSessionName”,MODE_PRIVATE);                         SharedPreferences.Editor editor = preferences.edit();                         editor.putString( “姓名”,AIMSvalue);

                    editor.commit();

OtherActivity.java

    SharedPreferences preferences=getSharedPreferences("YourSessionName", MODE_PRIVATE);
    SharedPreferences.Editor editor=preferences.edit();

    token=preferences.getString("name","");

    editor.commit();

1 个答案:

答案 0 :(得分:1)

public class CommonUtilities {

    private static SharedPreferences.Editor editor;
    private static SharedPreferences sharedPreferences;
    private static Context mContext;

/**
     * Create SharedPreference and SharedPreferecne Editor for Context
     *
     * @param context
     */
    private static void createSharedPreferenceEditor(Context context) {
        try {
            if (context != null) {
                mContext = context;
            } else {
                mContext = ApplicationStore.getContext();
            }
            sharedPreferences = context.getSharedPreferences(IConstants.SAMPLE_PREF, Context.MODE_PRIVATE);
            editor = sharedPreferences.edit();
        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }

/**
 * Put String in SharedPreference Editor
 *
 * @param context
 * @param key
 * @param value
 */
public static void putPrefString(Context context, String key, String value) {
    try {
        createSharedPreferenceEditor(context);
        editor.putString(key, value);
        editor.commit();
    } catch (Exception ex) {
        ex.printStackTrace();
    }

}

}

使用此 putString()方法在您登录时存储令牌。并在您注销或令牌过期时删除该令牌。