最近写的一个安卓项目里用到了跨应用间广播通信技术,说白点就是在不同的APP之间发送广播来接收消息,我在做的时候也遇到了一些问题,不过最后都解决了,特在此把自己的遇到的问题分享出来,方便遇到同样的问题的朋友能够快速解决。
广播注册分为动态注册和静态注册,如果有人不太明白的话,可以自行度娘一下。之前我使用的是静态注册的方式,但是很麻烦,而且还容易报错。我就遇到MainActivity$MyReceiver; no empty constructor这种错误,后来在百度上看到这种错误,是因为要把自己写的BroadcastReceiver前加上static,但是这样加上的结果就是很多跨进程之间传递的变量就不好用了,所以后来又改成用动态方式注册广播,最后把问题解决了。然后自己写了个小demo,老规矩,还是先上代码吧!
这是第一个APP的内容,其实内容很简单,就只有一个发广播的功能,可以使用Bundle传递很多信息,我这里就简单的传了一个String值。

本文介绍了在安卓项目中实现跨应用广播通信的过程,包括遇到的问题和解决方案。重点讨论了动态注册与静态注册广播的区别,特别指出静态注册可能导致的错误,如MainActivity$MyReceiver; no empty constructor,并提供了解决方案——将BroadcastReceiver声明为static。最终采用动态注册成功实现跨进程广播,同时附带了一个简单的发送广播的代码示例。
最低0.47元/天 解锁文章
562

被折叠的 条评论
为什么被折叠?



