1

我有一个服务,这个服务运行一个线程,它运行一个 AsyncTask 并覆盖 onProgressUpdate 方法。在这种方法中,我向我的本地广播接收器发送一条消息。

Intent intent = new Intent("BookDownloadService");

                    // You can also include some extra data.
                    intent.putExtra("bookID", book.bookID);
                    intent.putExtra("maxValue",  update[1]);
                    intent.putExtra("currentValue",  update[0]);
                    LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(intent);

在我的活动中,我想获取数据。

LocalBroadcastManager.getInstance(context).registerReceiver( new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            int bookId = intent.getIntExtra("bookID", 1);
            int maxValue = intent.getIntExtra("maxValue", 10);
            int currentValue = intent.getIntExtra("currentValue", 0);
            boolean isFinish = intent.getBooleanExtra("isFinish", false);
            Log.d("Receiver Buch " + bookId, currentValue + " von " + maxValue + " finish: " + isFinish);
        }
    }, new IntentFilter("BookDownloadService"));

但什么也没发生。没有日志消息或错误。

4

1 回答 1

0

您需要注册/注销接收器...

(onPause)
LocalBroadcastManager.getInstance(this).unregisterReceiver(mReceiver);

(onResume)
LocalBroadcastManager.getInstance(this).registerReceiver(mReceiver, <your intentFilter>);
于 2014-08-28T13:42:12.327 回答