Попробуйте этот код,
Код диспетчера сеансов:
SharedPreferences sharedPreferences;
SharedPreferences.Editor editor;
Context context;
public static final String KEY_CHECKIN= "checkin";
public void setCheckin(boolean login){
editor = sharedPreferences.edit();
editor.putBoolean(KEY_CHECKIN,checkin);
editor.apply();
}
public boolean getCheckin(){
return sharedPreferences.getBoolean(KEY_CHECKIN,false);
}
В вашем коде Java:
SessionManager sessionmanager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sessionmanager = new SessionManager(this);
// Условие для регистрации
[112 ]// Получение значения, когда пользователь снова открывает приложение:
if(sessionmanager.getCheckin()){}////proceed with your logic.
Что ж, ссылка, приведенная в принятом ответе на этот вопрос, ведет на статью Эрика Липперта Полное руководство Эрика по семантике BSTR . Хотя это определенно не официальная документация, Липперт является хорошо известным специалистом по COM (особенно в области сценариев).
Однако официальная документация говорит об этом. :
BSTR без элементов данных - это либо пустой BSTR, либо NULL BSTR. Пустой BSTR указывает на существующее, но нулевое значение данных. NULL BSTR указывает на значение данных, которого нет.
Итак, официально они оба BSTR
s без элементов данных, но с немного другой семантикой (хотя нет ничего, чтобы сказать, что эти 2 случая требуют обрабатываться иначе в вашем приложении). В этом случае я Конечно, я буду следовать совету Липперта относиться к ним одинаково. Для меня его реальный опыт работы с реальными реализациями имеет больший вес, чем одно предложение в официальном документе BSTR.
Майкл Берр дает то, что я думаю, должно быть принятым ответом. К сожалению, страница для BSTR
в MSDN не документирует эту практику.
Кроме того, вы можете сделать вывод об этом поведении на следующих страницах в документации MSDN:
SysFreeString
page reports что если bstr
равно null
, функция просто возвращает. Страница SysStringLen
сообщает, что передача null
для параметра bstr
возвращает ноль длины строки. Страница SysStringByteLen
сообщает о таком же поведении; null
означает нулевую длину. Однако документация не является полной:
SysReAllocString
не упоминает, что произойдет, если * pbstr
будет null
. SysReAllocStringLen
не упоминает, что произойдет, если * pbstr
будет null
.