BroadcastReceiver如何与Service通信

时间:2019-05-03 22:02:27

标签: android broadcastreceiver android-mediaplayer

BroadCastReciever如何在不绑定的情况下与服务通信?

我认为在BroadCastReceiver中使用活页夹是一个好主意,但是在阅读了一些信息后,我知道这不是一个好主意。 我试图在stackoverflow中找到问题,但是我发现的只是:

Q:“ BroadCastReciver +活页夹”

A:“不,这是个坏主意。”(不提供示例,说明如何在没有粘合剂的情况下与服务进行通信)

1 个答案:

答案 0 :(得分:0)

解决方案-LocalBroadcastManager。 感谢LocalBroadcastManager,我们可以在应用程序的不同部分之间发送广播。

SEND_BROADCAST

test = pd.DataFrame({'psnum':[0,1],'scale':[1,1],'mPower':[4.89842,5.67239]})
test
    psnum   scale   mPower
0   0       1       4.89842
1   1       1       5.67239

test['scale']=test['scale']*(test['mPower'].max()/test['mPower']).round(2)
test
    psnum   scale   mPower
0   0       1.16    4.89842
1   1       1.00    5.67239

接收广播

LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(context);
        IntentFilter filter = new IntentFilter("com.onezero.EXAMPLE_ACTION");
        localBroadcastManager.registerReceiver(new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                Toast.makeText(context, "=(", Toast.LENGTH_SHORT).show();
            }
        }, filter);

        Intent sintent = new Intent("com.onezero.EXAMPLE_ACTION");


        localBroadcastManager.sendBroadcast(sintent);