5

長い操作(アップロードプロセス)を開始するブロードキャストレシーバーがあります。Activityクラスから開始されたサービスのコードで、このレシーバーを新しいスレッドに登録する必要があります。

この投稿を確認しましたAndroidのBroadcastReceiversは新しいスレッドで開始されていますか?しかし、Context.registerReceiver(BroadcastReceiverレシーバー、IntentFilterフィルター、文字列broadcastPermission、ハンドラースケジューラ)の使用に関するより具体的な例が必要です。

実際、サービスから新しいスレッドを作成し、レシーバーを登録してこのスレッドに接続する方法を知る必要があります。

どうもありがとうございます。RA

4

1 に答える 1

17

あなたのサービスのonCreate()

private Handler handler; // Handler for the separate Thread

HandlerThread handlerThread = new HandlerThread("MyNewThread");
handlerThread.start();
// Now get the Looper from the HandlerThread so that we can create a Handler that is attached to
//  the HandlerThread
// NOTE: This call will block until the HandlerThread gets control and initializes its Looper
Looper looper = handlerThread.getLooper();
// Create a handler for the service
handler = new Handler(looper);
// Register the broadcast receiver to run on the separate Thread
registerReceiver (myReceiver, intentFilter, broadcastPermission, handler);
于 2012-05-21T09:28:56.563 に答える