0
我有一個處理程序對象,如下所示,只是一個示例 我的問題是:如果有人調用dataSync.setDataEnabled(true),則立即調用dataSync.getDateEnabled()。我們可以確保set/get依然在dataSync類中執行嗎?因爲我們使用消息來寫入數據,但直接讀取數據。處理程序對象中的線程順序問題
感謝
class dataSync extends Handler {
...
@Override
public void handleMessage(Message msg) {
case CMD_SET_DATA_ENABLE_SYN:
final boolean enabled = ((boolean)msg.arg1) ? true : false;
setDataEnabledSync(enabled);
break;
}
public boolean getDateEnabled() {
sync (mLock) {
return mDataEnabled;
}
}
void setDataEnabled(boolean enable) {
Message msg = obtainMessage(CMD_SET_DATA_ENABLE_SYNC);
msg.arg1 = enable ? 1 : 0;
sendMessage(msg);
}
void setDataEnabledSync(enabled); {
sync (mLock) {
mDataEnabled = enabled;
}
}
}
看起來標題和內容不匹配。你能改變它嗎? – Kishore
謝謝,這更清楚嗎? – user3584600
和你的意思是什麼「線程順序」?我沒有看到任何其他的威脅,只是主UI 1 – pskink