如何在onReceive方法中从Broadcast Receivers访问数据库?

时间:2017-01-31 12:02:23

标签: android

我无法从OnRecieve方法访问DBHelper类。 如何从Broadcast Receiver访问Database Handler类,以便轻松完成CRUD操作

1 个答案:

答案 0 :(得分:0)

BroadcastReceiver中执行数据库I / O.在主应用程序线程上调用onReceive()。如果在调用onReceive()时您的UI恰好位于前台,那么当您的I / O正在进行时,该UI将被冻结。如果您花费大量时间(几秒钟),Android将在您正在进行的操作中间终止您的代码,作为“应用程序无响应”(ANR)对话框的背景等效。

如果您有需要由广播触发的磁盘I / O,数据库I / O,网络I / O等,请在IntentService中执行该I / O,并且{{1调用onReceive()来触发startService()。如果此工作可能需要相当长的时间,请考虑使用IntentService