繁体   English   中英

广播接收器未收到服务意图

[英]broadcast receiver not receiving intent from service

我已经搜索了SO,甚至找到了一个标题与我的问题大致相同的问题。 但是我的代码仍然无法正常工作。

我尝试使用广播将位置从GPS服务发送到MainActivity。

在我的GPS服务中

Intent intent = new Intent(MainActivity.EXTRA_NEW_POS_FOR_PLOTTING_INTENT);
            intent.putExtra(MainActivity.EXTRA_NEW_POS_FOR_PLOTTING, new LatLng(location.getLatitude(), location.getLongitude()));
            LocalBroadcastManager.getInstance(this).sendBroadcast(intent);

在MainActivity.onCreate()的接收方,我这样做:

mBroadcastReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                LatLng pos = intent.getExtras().getParcelable(EXTRA_NEW_POS_FOR_PLOTTING);
                newLocForPlotting(pos);
            }
        };

在MainActivity.onStart()中,我有:

LocalBroadcastManager.getInstance(this).registerReceiver(mBroadcastReceiver, new IntentFilter(EXTRA_NEW_POS_FOR_PLOTTING_INTENT ));

我知道我的服务调用sendBroadcast(),但从未调用过onReceive()。

怎么了?

将此代码放入您的活动onResume方法中。

LocalBroadcastManager.getInstance(this).registerReceiver(mBroadcastReceiver, new IntentFilter(EXTRA_NEW_POS_FOR_PLOTTING_INTENT ));

您也可以像这样使用本地广播

Intent intent = new Intent(BundleTags.BROADCAST_TAG_FOR_INCOMING_CALL_REQUEST);
            // You can also include some extra data.
            intent.putExtra(RESPONSE_MESSAGE, body);

LocalBroadcastManager.getInstance(this).sendBroadcast(intent);

活动中

 LocalBroadcastManager.getInstance(ServiceProviderActivity.this).registerReceiver(myReceiver,
                new IntentFilter(BROADCAST_TAG_FOR_INCOMING_CALL_REQUEST));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM