我收到了一个DownloadManager.ACTION_DOWNLOAD_COMPLETE广播,我需要提取zip文件并填写数据库,我已经编写了代码来完成我的工作。但是我必须在这里启动Thread来处理文件提取并插入数据库。
我知道线程无法在广播接收器内启动。如果有任何身体遇到问题,请提出解决方案..因为我的工作需要时间插入,所以我不想等待并坚持下去。
我在广播接收器和
中运行线程时遇到异常编写此代码也无法在广播接收器中工作
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 };
答案 0 :(得分:5)
步骤1:编写一个IntentService
来完成“处理文件提取和插入数据库”的工作。
第2步:从startService()
的{{1}}致电onReceive()
,将控件传递给BroadcastReceiver
。