[英]Calling BroadCast receiver from main activity android
我想从我的应用程序的主要活动开始广播接收器类。 Main活动具有所有GUI内容,此活动启动了执行所有工作的服务。 为了使该服务在重新启动后启动,我编写了一个广播接收器类。 现在我很困惑在哪里调用广播接收器类。
问候
作为解决方案,您可以将自己的意图过滤器应用于BroadcastReceiver
,对其进行注册,然后在注册接收者之后立即在活动中调用sendBroadcast()
。 假设您在onReceive()
方法内部比较接收者的意图。
内存呢,这取决于您如何管理活动的生命周期,因为在保留对活动的引用的情况下,它不会从内存中删除,因此会导致创建多个接收者实例。
而且,您还可以添加android.intent.action.BOOT_COMPLETED
意向过滤器,以在设备启动后启动接收器
您可以从任何活动(包括您的主要活动)或班级中广播消息。 我正在使用一个帮助器类来做到这一点:
public class BroadcastHelper {
public static void sendBroadcast(Context context, String message, Serializable value) {
Intent broadcastIntent = new Intent();
broadcastIntent.setAction(message);
broadcastIntent.putExtra(Constants.BROADCAST_MESSAGE, value);
context.sendBroadcast(broadcastIntent);
}
}
不要忘记在清单文件中注册您的接收器。
使用这种方法将不会创建任何类的新实例,但意图本身将被垃圾收集。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.