Android sendStickyBroadcast
和sendBroadcast
Android有什么区别?
我有两个活动; 假设A和B activity A
是有广播接收器注册侦听将完成活动A.我注册的广播接收器的特定事件 onCreate()
,并摧毁它onDestroy()
的activity A
.
为简单起见,有一个button
在activity B
名为"破坏活性的A".当用户点击时button
,activity A
应该销毁.
通常所有这些都运行顺利,没有任何问题,但问题出现在以下场景中:
1)假设我在activity B
,我按Home键将应用程序移动到后台然后如果我使用其他资源繁重的应用程序,Android系统将杀死我的应用程序以释放内存.然后,如果我最近的任务打开我的应用程序时,activity B
将被收回,这是onCreate()
,onResume()
等方法将被调用.现在我按button
摧毁activity A
,但活动A已经被破坏,所以activity A
的onCreate()
,onResume()
等方法将不会被调用之前,除非我去activity A
按back button
.因此broadcast receiver
没有注册来监听事件.
2)当用户在设备的设置中从Developer选项中选择"Do not keep activities"时,会出现同样的问题.
我一直在寻找解决这个问题很长一段时间,但我无法找到合适的答案.处理这种情况的最佳方法是什么?这是Android的错误吗?这个问题应该有一些解决方案.
请帮我.
android broadcastreceiver android-lifecycle android-activity back-stack