如何通过意图传递一个对象
我有一个alarm
(repeatingalarm)和BroadcastReceiver
来处理它。该警报设置在我的activity
中,其等待意图参考BroadcastReceiver
类。我的活动中有一个sqlite
数据库。我想在我的警报中更新我的sqlite数据库,所以我需要从我的活动sqlite对象。这也是我的asynctask
也需要我的警报执行。我怎样才能做到这一点? 简而言之,我想将我的活动对象传递给我的广播构造函数,以便我可以使用我的sqlite实例。如何通过意图传递一个对象
编辑:我注意到,如果我在我的活动中定义了BroadcastReciever
,我可以参考它,就像MyActivity.this一样简单。有没有其他办法,而不是这个。
你不能在'broadcastreceiver'中做太多的工作。
打算您必须创建一个服务类来执行此操作并从“broadcastreceiver”调用服务。然后在Service
中写入您的DataBase代码。
在服务中,您可以通过getApplicationConext()
创建'sqlite
'DataBase
对象。
此外,在服务内部必须为您的工作创建分离线程或使用AsyncTask
来执行您的数据库操作。
我需要重复报警,所以我需要broadcastreceiver没有服务。 –
是的你是广播接收机的权利,但广播接收机有限的时间做你的工作,最好的办法是,你从广播接收机打电话服务,然后你的服务内的任务, –
服务可以只是一个方式来激励/发射broadcastrceiver。 –
你不能在'broadcastreceiver'中做太多的工作。 –
定义我的活动中的所有类。我可以从他们访问我的活动类对象吗? –
是的,您可以从任何类中调用任何方法接受其不更新和UI组件,并且必须从您的调用方传递应用程序上下文,并且可以像任何非Activity类一样使用任何方法。 –