我有一個活動與Switch Control
。通過此開關控制,用戶可以打開/關閉tcp服務器。Android的方向更改呼叫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
你可以在onResume()和'onPause'中的'SharedPreferences'中實現整個'OnCheckedChangeListener'函數。此外,如果我的評論是有用的標記他們如此。 –