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“处理文件提取和插入数据库”的工作。

第 2 步:调用startService()fromonReceive()BroadcastReceiver将控制权传递给IntentService.

于 2012-10-06T13:27:28.810 回答