A应用检测到数据后发送到B应用,B接受展示或者其他操作
实现方案:通过普通广播
项目需求是A应用通过串口接收到的数据发送给B应用,B 在展示以及更改数据。
demo:
我这里的【A 应用 是:dtuservice】 【B 应用是 dtu】
效果图
代码A应用
public class TestTask extends BaseTask {
private String TAG = getClass().getName();
private String Json = null;
private Context mContext;
public TestTask(Context mContext) {
this.mContext = mContext;
}
@Override
protected void task() {
super.task();
Log.d(TAG, "testTask: " + Thread.currentThread().getName());
Json = "[{\"statename\":\"状态名称\",\"stateico\":\"状态图标名称\"},{\"statename\":\"状态名称\",\"stateico\":\"状态图标名称\"}]";
while (true) {
sendBrocastDataJsonMassage(Json);
}
}
private void sendBrocastDataJsonMassage(String dataJson) {
Intent intent = new Intent();
intent.setAction("aaa");
intent.putExtra("dataJsonMassage", dataJson);
mContext.sendBroadcast(intent);
}
}
B应用代码 清单文件
<receiver android:name=".broadcastreceiver.ReceiveBroadcast">
<intent-filter>
<action android:name="aaa"/>
</intent-filter>
</receiver>
广播 静态注册
public class ReceiveBroadcast extends BroadcastReceiver {
private String TAG = getClass().getName();
@Override
public void onReceive(Context context, Intent intent) {
String stringExtra = intent.getStringExtra("dataJsonMassage");
Toast.makeText(context, stringExtra, Toast.LENGTH_SHORT).show();
Bundle bundle = intent.getExtras();
String dataJsonMassage = bundle.getString("dataJsonMassage", "");
Log.d(TAG, "接收到的广播为: " + dataJsonMassage);
}
}