У меня есть работа с Switch Control
. С помощью этого переключателя пользователь может включить/выключить tcp-сервер.Android change change calls Switch.onChange
Теперь у меня есть аналогичная проблема here. Если коммутатор (а также сервер) включен, а ориентация меняется, то снова вызывается onclicklistener
, а также снова запускается сервер.
Я пытался справиться с этим, проверяя, если клиент является недействительным:
OnCheckedChangeListener listener = new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
if (client == null)
startCubeSolverServer();
} else {
if (client != null)
stutdownCubeSolverServer();
}
}
};
но поскольку объект клиент является частной переменной моей деятельности он сбрасывается на нуль каждое изменение ориентации.
Есть ли легкое исправление, чтобы не запускать changeHandler
, если значение не изменяется при просмотре пользователей?
вместо проверки 'клиент! = Null' вы можете использовать' sharedPreferences' и хранить '' String' или значение boolean' в 'OnPause()', а затем выполнить проверку в 'onResume()'. –
Полезная идея использовать sharedPreferences! У вас также есть идея, где я должен обращаться с объектом моего сервера? – TomBoo
вы можете реализовать целую функцию 'OnCheckedChangeListener' в onResume() и' SharedPreferences' в 'onPause'. Также, если мои комментарии полезны, отметьте их так. –