Android 同时向活动和服务通知事件的模式

Android 同时向活动和服务通知事件的模式,android,service,android-activity,broadcastreceiver,intentservice,Android,Service,Android Activity,Broadcastreceiver,Intentservice,我想知道以下场景的最佳模式: 1) ActivityA包含一个按钮,按下该按钮可重置应用程序数据 2) IntentServiceA、IntentServiceB和ActivityB希望收到有关事件的通知IntentService a清除应用程序的数据库,IntentService B从内部存储器中删除一些文件,ActivityB,尽管已停止,但从给定的内部处理程序中删除任何挂起的消息 以下是我目前针对这种情况的设计: 1) ActivityA使用带有特定操作(如操作重置数据)的sendBroa

我想知道以下场景的最佳模式:

1)
ActivityA
包含一个按钮,按下该按钮可重置应用程序数据

2)
IntentServiceA
IntentServiceB
ActivityB
希望收到有关事件的通知
IntentService a
清除应用程序的数据库,
IntentService B
从内部存储器中删除一些文件,
ActivityB
,尽管已停止,但从给定的内部
处理程序中删除任何挂起的消息

以下是我目前针对这种情况的设计:

1)
ActivityA
使用带有特定操作(如操作重置数据)的
sendBroadcast()
来通知事件

2)
ActivityB
有一个内部私有的
brodcastereceiver
,它注册在
onCreate()
方法上,因为即使活动停止,它也必须响应操作

3)
IntentServiceA
IntentServiceB
也有
广播接收器
,但它们被声明为
公共静态
,并在AndroidManifest.xml中声明。这样,就可以访问它们,而无需在相应的服务上进行任何注册。所有的
BroadcastReceiver
do都是启动外部服务,该服务依次检查intent的操作与
onHandleIntent()
方法上的操作重置数据

虽然它可以工作,但我可以看到这种方法存在两个主要问题:

  • 清单上声明了其他应用程序无法访问的意图筛选器。事实上,
    IntentService
    和内部
    BroadcastReceiver
    都是用
    exported=“false”
  • 我无法使用
    LocalBroadcastManager
    ,因为它与AndroidManifest.xml中声明的
    BroadcastReceivers
    不兼容。这将是可取的,因为有问题的广播是我的应用程序内部的
我可以从两个
IntentServices
中删除
BroadcastReceiver
,然后通过
ActivityA
中的
startService
手动启动它们,并保持
ActivityB
不变,但如果服务数量增加怎么办?我必须包含代码才能启动它们?事实上,我的应用程序中还有一些类似的案例,我不确定如何正确处理它们


有什么建议吗?

试试共享参考资料。当价值发生变化时,将通知活动


你有没有一个例子来说明如何使用它?我的意思是在文章的正文中。只有链接的答案不受欢迎,因为当链接过期/死亡/移动时,anser将丢失所有值。为了防止这种情况发生,并确保您提供高质量的答案,请在答案正文中包含示例、详细信息和其他相关信息。