我有alarm
(重复警报)和BroadcastReceiver
来处理它。警报在我的activity
中设置,其中涉及BroadcastReceiver
类的待定意图。我的活动中有一个sqlite
数据库。我想在警报中更新我的sqlite数据库,所以我需要从我的活动中获取sqlite对象。我的asynctask
也需要它,这也是我的警报中执行的。我怎样才能做到这一点?
简而言之,我想将我的活动对象传递给我的广播构造函数,以便我可以使用我的sqlite实例。
编辑:我注意到如果我在我的活动中定义BroadcastReciever
,我可以将其称为 MyActivity.this 这么简单。还有其他方式,而不是这个。
答案 0 :(得分:1)
你不能在“广播接收者”中做太多工作。
打算你必须创建一个服务类来执行此操作并从' broadcastreceiver'中调用服务。 。然后在Service
。
在服务中,您可以创建' sqlite
' DataBase
getApplicationConext()
对象通过AsyncTask
。
同样在Service中必须为您的工作创建单独的线程或使用![Alt Text](https://media.giphy.com/media/vFKqnCdLPNOKc/giphy.gif)
进行数据库操作。