Мои 2 андроид приложения взаимодействуют Повсеместно в AIDL файл:Android: SharedPreferences не обновлял
< приложение А == AIDL ==> Приложение B (услуга)
Применение А вызывает методы применения B (служба), которая возвращает некоторую информацию JSON. Однако, если пользователь не зарегистрирован в приложении B, возвращается null.
(служба в заявке 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;
}
Если нуль возвращается, "Логин" деятельность в приложения B запускается из приложения А.
(Aplication А)
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, регистрационные данные будут загружены ....
Пожалуйста, дайте мне знать, если дополнительная информация не требуется. Спасибо
Редактор prefsEditor = prefsEditor.commit(); измените эту строку только на \ prefsEditor.commit(); – Avijit
Я обновил свое сообщение, извините – johann