我2個機器人應用通信throught一個AIDL文件:機器人:SharedPreferences未更新
應用程序A < == AIDL ==>應用B(服務)
應用A調用的應用的方法B(服務)返回一些JSON信息。但是,如果用戶未登錄到應用程序B,則返回空值。
(在應用程序B服務)
//first : get info
SharedPreferences mPrefs = getSharedPreferences(Consts.SP_NAME, MODE_PRIVATE);
String userId = mPrefs.getString(Consts.PREFS_USER_ID, "");
String userPass = mPrefs.getString(Consts.PREFS_USER_PASS, "");
//then check is valid (remote server)
if (dao.exist (userId, userPass)){
return "MY_JSON_INFO" ;
}else{
return false;
}
如果返回null, 「登錄」,在應用B的活動是從應用A.
(Aplication A)
if(json == null){
Intent intent = new Intent("jp.app.LOGIN_ACTIVITY");
startActivity(intent);
}
推出用戶登錄(應用程序B),數據保存在SharedPreferences(應用程序B)中,活動關閉(返回到應用程序A)。
SharedPreferences mPrefs = a.getSharedPreferences(Consts.SP_NAME, MODE_PRIVATE);
Editor prefsEditor = mPrefs.edit();
prefsEditor.putString(Consts.PREFS_USER_ID, id);
prefsEditor.putString(Consts.PREFS_USER_PASS, pass);
prefsEditor.commit();
當重新嘗試調用應用程序B的方法時,幾秒前保存的登錄信息不可用,並返回null。
我嘗試過沒有成功prefsEditor.apply()。
如果我重新啓動應用程序B,登錄數據將被載入....
請讓我知道,如果需要進一步的信息。 謝謝
Editor prefsEditor = prefsEditor.commit();將這些行更改爲\ prefsEditor.commit(); – Avijit
我已更新我的消息,對不起 – johann