Activity启动和广播的问题

Activity A 启动Activity B 后,把 B 关了回到 A ,然后 A 再启动 B,B 里面的适配器设有点击动作,点击后发送广播 B 接收后执行了两次onReceive,B 启动几次执行几次,我广播直接 new 广播()的啊,都没有实例。

参考GPT和自己的思路:

这种情况可能是因为你没有正确注销广播接收器。每次启动 Activity B 后,你都可能会注册一个新的广播接收器,而不是注销旧的广播接收器。因此,当你点击适配器中的项目并发送广播时,旧广播接收器可能仍然存在,从而导致执行两次 onReceive。

你应该在 Activity B 的 onDestroy() 方法中注销广播接收器,以确保每次启动 Activity B 时都只注册一个广播接收器。请尝试在 onDestroy() 方法中加入以下代码:

unregisterReceiver(广播接收器);

这样做之后你的应用程序应该只会执行一遍 onReceive() 方法了。

搞好了😭😭,把getApplicationContext().registerReceiver前面的getApplicationContext()去掉就行了。。。。

广播直接 registerReceiver(new 广播(),intentfilter)的啊,都没有实例,都没法解绑;B 启动的快慢也没关系,关闭 B 后,在 A 界面等一会再启动 B 也是一样;关键是在 B 界面的初始参数在接收广播后还会变成之前 B 界面执行的值,就是第一次kind=2(初始kind=1)结束,第二次打开后,kind的初始值确实是1,但在执行广播时就变成2了,但最终还是1,这真的见鬼了啊。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^