【发布时间】:2014-10-19 15:02:18
【问题描述】:
我想将我从登录活动中获得的令牌保存在共享首选项中,因此当用户重新打开应用程序时,如果令牌与共享首选项中的令牌相同,则转到 SecondActivity,否则转到 LoginActivity 我试了很多,但不能让它工作,请帮助
负责保存和检索数据的方法类
public class SesionManagement {
SharedPreferences pref;
SharedPreferences.Editor editor;
Context _context;
int PRIVATE_MODE = 0;
private static final String PREF_NAME = "STORAGEBAY";
public static final String KEY_NAME = "token";
public SesionManagement(Context context){
this._context = context;
pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
editor = pref.edit();
}
public void createLoginSession(String name){
editor.putString(KEY_NAME, name);
editor.commit();
}
public void checkLogin(String value,String gotValue){
if(value==gotValue) {
Toast.makeText(_context, "FAILED", Toast.LENGTH_SHORT).show();
Intent i = new Intent(_context, NavDraver.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
_context.startActivity(i);
}
else{
editor.clear();
editor.commit();
Intent i = new Intent(_context, Login.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
_context.startActivity(i);
}
}
我如何在 LoginActivity onCreate 中做到这一点
session=new SesionManagement(getApplicationContext());
HashMap<String, String> tokens = session.getUserDetails();
String name = tokens.get(session.KEY_NAME);
if(token!=null) {
session.checkLogin(token, name);
}
然后我将值存储在 LoginActivity onPostExecute
@Override
protected void onPostExecute(String s) {
session.createLoginSession(token);
pDialog.dismiss();
}
【问题讨论】:
-
你的hasmap是tokens..那么token是什么?在您的代码中
-
acces_token,我从 loginActivity 中的 Json 响应中得到它