2016-11-04 16 views
3

私は、SOAP Webサービスとやり取りしてデータベースからデータを取得するアプリケーションを作成しています。ユーザーが正常にログインすると、Webサービスを介してトークンが生成されます。このトークンは、後でWebサービスメソッドを呼び出すための他のアクティビティで必要になります。私の質問は、そのトークンを必要に応じて次のアクティビティに渡して、ユーザーがログアウトするまでそれを維持する方法です。トークンをアンドロイドのローカルまたはセッションストレージに保存する方法は?

MainActivity.java

SharedPreferences選好= getApplicationContext()getSharedPreferences( "YourSessionName"、MODE_PRIVATE)。 SharedPreferences.Editor editor = preferences.edit(); editor.putString( "name"、AIMSvalue);

    editor.commit(); 

OtherActivity.java

+0

私は[SharedPreferences](https://developer.android.com/reference/android/content/SharedPreferences.html)が正しい場所だと思う。 –

+0

いいえ、うまくいきません。 –

+0

SharedPreferencesを使用しているときにどのような問題が発生していますか? –

答えて

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(); 
    } 

} 

} 

使用

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

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

    editor.commit(); 
あなたがログインしたときにトークンを格納します。そして、あなたがログアウトまたはトークンの有効期限が切れたときにそのトークンを削除するには、この putString()方法。

+0

私はこれをしましたが、動作していません。ログイン後の2番目のWebサービスメソッド、つまりログイン画面から生成されたトークンが別の画面に適切に渡されていない場合、常に新しいリクエストとして扱います。@ Kush Patel –

関連する問題