Android Broadcast Receiver 跨进程通讯

A应用检测到数据后发送到B应用,B接受展示或者其他操作
实现方案:通过普通广播
项目需求是A应用通过串口接收到的数据发送给B应用,B 在展示以及更改数据。

demo:
我这里的【A 应用 是:dtuservice】 【B 应用是 dtu】
效果图

Android Broadcast Receiver 跨进程通讯_第1张图片
B应用通过广播接收到的数据

代码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应用代码 清单文件


            
                
            
        

广播 静态注册

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);
    }
}

你可能感兴趣的:(Android Broadcast Receiver 跨进程通讯)