在我的应用程序中,我有一个处理蓝牙连接的服务,并且在完成阶段后,类型(int)的变量会更改。
例如:
public static final int S_STATE_CONNECTED = 3;
public static final int S_STATE_CONENECTION_LOST = 4;
int State;
private final class CountHandler extends Handler{
CountHandler(Looper looper){
super(looper);
}
@Override
public void handleMessage(Message msg){
connect(); //Here int State Changes
}
连接过程:
public void connect(){
//some process
State = S_STATE_CONNECTED;
Intent resultIntent = new Intent(ACTION_BT_SERVICE_CONNECTED);
resultIntent.putExtra("addressDevice",nameAddress);
resultIntent.putExtra("nameDevice",nameDevice);
localBroadcastManager.sendBroadcast(resultIntent);
}
在我的服务中,我使用LocarBroadcastManager
发送此数据
在我的活动中,我使用BroadcastReceiver
处理它们,并根据我收到的内容修改了UI。
我想获得State
的值,该值指示我的连接的不同状态,以便当我开始另一个活动时,我知道我的连接的当前状态并显示相应的信息。
答案 0 :(得分:0)
在您的connect方法中添加此
public void connect(){
//some process
State = S_STATE_CONNECTED;
Intent resultIntent = new Intent(ACTION_BT_SERVICE_CONNECTED);
resultIntent.putExtra("addressDevice",nameAddress);
resultIntent.putExtra("nameDevice",nameDevice);
//send your state as extra
resultIntent.putExtra("currentState",State);
localBroadcastManager.sendBroadcast(resultIntent);
}
在您的UI活动中,您可以得到更多,并相应地更新您的ui。