gpt4 book ai didi

android - BroadcastReceiver 的 Manifest 和 Programmatic 注册的主要区别

转载 作者:IT王子 更新时间:2023-10-28 23:30:53 26 4
gpt4 key购买 nike

我试图了解在 Manifest 中注册 BroadcastReceiver 和以编程方式注册之间的主要区别...

我的理解基本上如下(如果我遗漏了什么,将不胜感激有人纠正我的观点)。

  • 在 Manifest 中注册:

    1. 如果需要,操作系统会神奇地找到并实例化您的类,调用 onReceive() 方法,而不管您的应用程序的运行状态是什么
    2. 您的 receive 每次广播只会被调用一次(即,您可以认为在 list 中注册就像注册您的“类”以接收广播 - 并且广播会根据需要实例化您的类)(??)
  • 以编程方式注册:

    1. 在代码中注册意味着您正在注册类的实例以接收广播消息(即,如果您的代码有点草率,并且您设法注册了多次,那么您最终会得到多个 BroadcastReceiver 实例,它们都具有它们的 onReceive( ) 要求广播
    2. 要注销,您需要注销您之前注册的特定 BroadcastReceiver 实例
    3. 如果您的应用程序被操作系统破坏,您的 onReceive() 方法将不会被调用以进行广播

谢谢

最佳答案

你说的基本正确。

请注意, list 注册的接收器对象仅使用一次。您的 BroadcastReceiver 的新实例为每个广播创建。 list 注册接收器的主要用途是当您的代码不在内存中时可能会继续广播(例如,BOOT_COMPLETED,您通过 AlarmManager 安排的警报)。

关于android - BroadcastReceiver 的 Manifest 和 Programmatic 注册的主要区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3651772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com