我想从我的应用程序的主要活动开始广播接收器类。主要活动包含所有GUI内容,此活动启动一项执行所有工作的服务。为了在重启后启动此服务,我编写了一个广播接收器类。现在我很困惑在哪里调用广播接收器类。
此致
答案 0 :(得分:0)
作为解决方案,您可以将自己的意图过滤器应用于BroadcastReceiver
,注册它,然后在注册接收器后立即在您的活动中调用sendBroadcast()
。这假设你比较onReceive()
方法中接收到的接收器的意图。
内存如何,这取决于您如何管理活动的生命周期,因为在剩余引用活动的情况下,它不会从内存中删除,因此会导致创建接收器的多个实例。
您还可以添加android.intent.action.BOOT_COMPLETED
意图过滤器,以便在设备启动后启动接收器
答案 1 :(得分:0)
您可以从任何活动(包括您的主要活动)或班级广播消息。我正在使用帮助程序类来执行此操作:
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);
}
}
不要忘记在清单文件中注册您的接收器。
使用这种方法不会创建任何类的新实例,除了意图本身,它将被垃圾收集。