android - 广播收到两次

标签 android service broadcastreceiver

我正在使用本地广播让我的服务知道 AsyncTask 已完成其工作,但我有一个小问题:广播仅发送一次(它由仅在应用程序启动时调用的函数创建) 但我收到了两次。

简化代码:

@Override
protected void onPostExecute(HttpResponse result) {
    LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(getBaseContext());
    localBroadcastManager.sendBroadcast(new Intent(getString(R.string.bc_CONNECTED)));
}

在服务中:

private BroadcastReceiver connectedBroadcastReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d(getString(R.string.app_tag), "broadcast received !!");
    }
};

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    LocalBroadcastManager.getInstance(this).registerReceiver(connectedBroadcastReceiver, new IntentFilter(getString(R.string.bc_CONNECTED)));
    return START_STICKY;
}

有没有人遇到过这种奇怪的行为?

最佳答案

我有同样的问题,问题是我在 onCreate 方法和 onResume 方法中注册了接收器。从 onCreate 中删除问题已解决。

关于android - 广播收到两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12448423/

相关文章:

android - JwPlayer Gradle 同步错误

android - UPDATE : Most Samsung Androids have "Settings" button too in soft keyboard. 如何拦截或禁用它?

unit-testing - SpyOn 返回预期是 spy ,但得到了函数

java - 如果 Activity 被杀死,Service 会发生什么?

android - 在 Android 中 : Can I receive a Broadcast intent from one application into second application

android - 谷歌地图 API v2 : How to make markers non-clickable?

Android - 多行线性布局

c# - 您如何捕获 Web 服务抛出的 soap 异常?

带有 GUI 工具的 Java 服务

android - DeadObjectException 尝试使用 Context.sendOrderedBroadcast 时