简体   繁体   English

Android - 如何收听未注册的广播接收器?

[英]Android - How to listen to broadcast receiver unregistered?

I have an activity A.java which sends a broadcast and needs to wait for this broadcast unregistered then do something else.我有一个活动 A.java,它发送一个广播,需要等待这个广播未注册然后做其他事情。 This broadcast receiver will invoke another activity B.java and only unregister the broadcast receiver when the activity is finished.此广播接收器将调用另一个活动 B.java 并且仅在活动完成时取消注册广播接收器。

So my question is how to make A.java listen to the broadcastReceiver unregistered?所以我的问题是如何让 A.java 监听未注册的广播接收器?

To be more specific, it's A.java in app A and B.java in app B. I can't figure out a way to communicate between apps but broadcast.更具体地说,它是应用程序 A 中的 A.java 和应用程序 B 中的 B.java。我想不出一种在应用程序之间进行通信但广播的方法。 Does anyone have better idea?有没有人有更好的主意?

Thanks!!谢谢!!

I suggest you rethink your app flow.我建议您重新考虑您的应用程序流程。 When Activity A sends a local broadcast, Activity B can listen and send back another broadcast after the task which it is supposed to do is done.当 Activity A 发送本地广播时,Activity B 可以在它应该执行的任务完成后侦听并发送回另一个广播。 You don't have to listen to Broadcast Receivers being unregistered, as you should be unregistering them in a lifecycle teardown event (such as onStop).您不必监听广播接收器被取消注册的情况,因为您应该在生命周期拆卸事件(例如 onStop)中取消注册它们。

Wrong appraoch.错误的做法。 You cannot be triggered on "unregister" of a receiver.您不能在接收器的“取消注册”时被触发。

You can communicate between activities iun a single task either by calling startActivityForResult() or startActivity() and passing data in Intent , or by sending data in broadcast Intent s.您可以通过调用startActivityForResult()startActivity()并在Intent传递数据,或通过在广播Intent发送数据,在单个任务中的活动之间进行通信。 Leave your receivers registered and listening, and send as many broadcast Intent s as necessary.让你的接收者注册并监听,并根据需要发送尽可能多的广播Intent

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM