2016-11-04 1 views
3

Я создаю приложение, которое взаимодействует с веб-службами SOAP для получения данных из базы данных. Когда пользователь успешно выполняет вход в систему, он генерирует токен через веб-службы. Этот токен потребуется позже в других действиях для вызова методов веб-сервиса. Мой вопрос: как я могу передать этот токен следующему действию, когда это необходимо, и поддерживать его до тех пор, пока пользователь не выйдет из системы.Как хранить токен в локальном или сеансовом хранилище в android?

MainActivity.java

SharedPreferences предпочтения = getApplicationContext() getSharedPreferences ("YourSessionName", MODE_PRIVATE). SharedPreferences.Editor editor = preferences.edit(); editor.putString ("name", AIMSvalue);

    editor.commit(); 

OtherActivity.java

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

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

    editor.commit(); 
+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(); 
    } 

} 

} 

Используйте этот putString() способ хранения маркера, когда вы вошли в систему. И удалите этот жетон, когда вы вышли из системы или маркера истекает.

+0

Я сделал это, но не работал. Он всегда рассматривает его как новый запрос при вызове второго метода веб-службы после того, как логин называется i.e токен, сгенерированный на экране входа в систему, неправильно передается на другой экран. @ Kush Patel –

 Смежные вопросы

  • Нет связанных вопросов^_^