2

取得時に DownloadManager.ACTION_DOWNLOAD_COMPLETE ブロードキャストを取得しています。zip ファイルを抽出し、作業を行うためにコードを記述したデータベースに入力する必要があります。ただし、ファイルの抽出と挿入を処理するには、ここでスレッドを開始する必要があります。データベース。

ブロードキャストレシーバー内でスレッドを開始できないことを知っています。体に問題が発生した場合は、解決策を提案してください.. 私の仕事は挿入に時間がかかるので、待って固執したくない.

ブロードキャストレシーバー内でスレッドを実行しているときに例外が発生し、

このコードを書いても、放送受信機内では機能しません

BroadcastReceiver onComplete = new BroadcastReceiver() {
    public void onReceive(Context ctxt, Intent intent) {

        /*
         * check status message whether the last queue is successful and
         * completed and then stop self
         */
        if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(intent.getAction())) {
            Intent mIntent = new Intent(downloadmanager1.this, DBService.class);
            mIntent.putExtra("messenger", new Messenger(mHandler));
            mIntent.putExtra("enqueue", enqueue);
            ctxt.startService(mIntent);
          //  ctxt.startService(mIntent);
        }
    }

注 - 例外やエラーは発生せず、デバッグ中に DDMS で Intentservice が開始されることもありません

4

1 に答える 1

5

ステップ#1:IntentService「ファイルの抽出とデータベースへの挿入を処理する」作業を行う an を記述します。

ステップ #2:startService()からを呼び出して、に制御を渡しonReceive()ます。BroadcastReceiverIntentService

于 2012-10-06T13:27:28.810 に答える