サービスがあります。このサービスは、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"));
しかし、何も起こりません。ログメッセージやエラーはありません。