是否可以从活动中更新当前正在运行的Broadcastreceiver?例如:
假设用户输入一个字符串...然后点击提交...我希望用新字符串更新广播接收器并使用该字符串而不是接收者可能具有的旧字符串。这可能吗?或者我可以以某种方式在用户单击提交时停止旧接收器,然后使用新字符串重新启动它?
答案 0 :(得分:0)
我认为你不能。如果查看Receiver Lifecycle文档,您会发现生命周期仅限于onReceive。
如果接收者的生命周期足够长,用户可以与之交互,我只需使用BroadcastReceiver来启动服务。该服务可以做两件事:
每当用户修改有问题的值时,让您的Activity代码触发Intent。
这个解决方案的好处是如果服务没有运行,那么Intent会被丢弃在地板上而你根本不需要启动服务。如果服务正在运行,则会进行更新。
答案 1 :(得分:0)
也许我误解了你的问题,但为什么不把你的字符串存储在SharedPreference?
每当Activity需要更新该字符串时,它会将其保存为首选项,并且在广播接收者的onReceive
方法中,您只需从首选项中获取它。