0
我要BroadCastReceivers:一個是從藍牙低功耗(BLE)監聽數據,另一個用於屏幕狀態如下:在BroadcastReceivers Android之間傳遞數據?
private String sreenState="";
public class ScreenStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
sreenState="screen on";
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
Log.i(TAG, "screen on");
sreenState="screen on";
}
}
}
private final BroadcastReceiver mGattUpdateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (BluetoothLeService.ACTION_DATA_AVAILABLE.equals(action)) {
String data=intent.getStringExtra(BluetoothLeService.EXTRA_DATA);
Log.d("TAG",sreenState);
}
}
}
在BLE的廣播接收器,我想顯示的當前狀態屏幕通過screenState
變量,當ACTION_DATA_AVAILABLE
發生時。但是,它總是返回以前的屏幕狀態。例如,屏幕關閉,我收到數據,它會顯示「空」。如果屏幕打開,並且我收到數據,則狀態結果關閉。我認爲這是同步問題。我如何解決它?感謝所有
我想是因爲我需要檢查的開,關,屏幕鎖使用上面的電視,而不是隻屏幕 – Jame
@ user8430我個人避免依賴'BroadcastReceiver'進行同步通信,因爲大部分時間甚至系統級廣播都顯着延遲 – Shaishav