当前位置: 首页 > news >正文

汽车网站flash模板oa系统网站建设方案

汽车网站flash模板,oa系统网站建设方案,采购软件,小白如何做网站大部分隐式广播无法通过静态注册接收#xff0c;除了以下白名单广播#xff1a; ACTION_BOOT_COMPLETED ACTION_TIMEZONE_CHANGED ACTION_LOCALE_CHANGED ACTION_MY_PACKAGE_REPLACED ACTION_PACKAGE_ADDED ACTION_PACKAGE_REMOVED 需要以动态注册方案替换#xff1a; cl…大部分隐式广播无法通过静态注册接收除了以下白名单广播 ACTION_BOOT_COMPLETED ACTION_TIMEZONE_CHANGED ACTION_LOCALE_CHANGED ACTION_MY_PACKAGE_REPLACED ACTION_PACKAGE_ADDED ACTION_PACKAGE_REMOVED 需要以动态注册方案替换 class MainActivity : AppCompatActivity() {private val receiver object : BroadcastReceiver() {override fun onReceive(context: Context, intent: Intent) {// 处理广播}}override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)// 使用动态注册替代静态注册registerReceiver(receiver, IntentFilter().apply {addAction(your.custom.action)})} } 后台应用发送广播受到限制 // 后台应用发送广播限制 // 解决方案 // 1. 使用前台服务 startForegroundService(intent)// 2. 使用 LocalBroadcastManager LocalBroadcastManager.getInstance(this).sendBroadcast(intent)// 3. 使用显式广播 Intent(this, MyReceiver::class.java).also { intent -sendBroadcast(intent) } 性能优化建议 // 使用有序广播替代多个广播 sendOrderedBroadcast(intent, null)// 使用粘性广播替代定时轮询 sendStickyBroadcast(intent)// 使用 EventBus 等替代方案 implementation org.greenrobot:eventbus:3.2.0 LocalBroadcastManager 的实现原理 // LocalBroadcastManager 核心实现原理 class LocalBroadcastManager private constructor(private val context: Context) {// 1. 使用 Handler 处理消息private val handler Handler(Looper.getMainLooper())// 2. 广播接收器的注册表private val receivers HashMapString, ArrayListReceiverRecord()// 3. 待处理的广播队列private val pendingBroadcasts ArrayListBroadcastRecord()// 4. 注册广播接收器fun registerReceiver(receiver: BroadcastReceiver, filter: IntentFilter) {synchronized(receivers) {// 记录接收器和过滤器val record ReceiverRecord(filter, receiver)filter.actionsIterator().forEach { action -// 按 action 分类存储接收器receivers.getOrPut(action) { ArrayList() }.add(record)}}}// 5. 发送广播fun sendBroadcast(intent: Intent) {synchronized(receivers) {// 查找匹配的接收器val matchingReceivers ArrayListReceiverRecord()// 根据 action 找到对应的接收器receivers[intent.action]?.forEach { record -if (record.filter.match(intent)) {matchingReceivers.add(record)}}if (matchingReceivers.isEmpty()) return// 将广播加入队列synchronized(pendingBroadcasts) {pendingBroadcasts.add(BroadcastRecord(intent, matchingReceivers))// 通过 Handler 发送消息handler.post {executePendingBroadcasts()}}}}// 6. 执行广播private fun executePendingBroadcasts() {while (true) {val broadcast synchronized(pendingBroadcasts) {if (pendingBroadcasts.isEmpty()) nullelse pendingBroadcasts.removeAt(0)} ?: break// 在主线程分发广播broadcast.receivers.forEach { receiver -receiver.receiver.onReceive(context, broadcast.intent)}}} } 核心原理 单例模式管理Handler 消息机制同步队列处理主线程分发内存级别通信 实现特点 不经过 AMS 无进程间通信效率更高安全性好同步执行 优化设计 避免广播风暴减少内存占用 保证顺序执行 线程安全控制生命周期管理
http://www.hkea.cn/news/14368231/

相关文章:

  • 北京门户网站开发wordpress主题访问慢
  • 唐山网站建设500元wordpress+并发量
  • 建设单位发包许可证网站知名商城网站建设价格低
  • 金山区网站制作东莞企业网站找谁
  • php手机网站建设阿里云服务器 怎么设置网站环境
  • html5 网站开发实战哈尔滨工程信息网
  • 上海建站模板搭建wordpress 下一篇插件
  • 台州网站建设公司.ic手机网站开发平台
  • 珠海网站建设杰作利于seo的网站设计
  • 重庆专业网站推广时间西青天津网站建设
  • 无障碍网站建设推广前景无锡市无锡市住房和城乡建设局网站
  • 网站的超链接怎么做做调查网站赚钱
  • 如何让百度搜到自己的网站浙江海滨建设集团有限公司网站
  • 医药网站前置审批400电话单页网站
  • 专门做饮食加盟的网站做白酒有没有必要做个网站
  • 宣讲家网站支部建设网站模板站的模板展示怎么做的
  • 为什么网站权重会掉深圳坑梓网站建设
  • 深圳网站设计 深圳信科装修工人
  • 极速网站建设定制多少钱企业网站建设 详细方案
  • 大尺度做爰网站青海省网站建设平台
  • 挣钱网站一小时两百济南网站建设泰观网络
  • 网站制作工资全球网站流量排名查询
  • 网站打开慢网站被降权严重吗
  • 搭建网站需要的软件新浪短链接生成
  • 班级的网站设计怎么做零基础学建网站
  • 鄂尔多斯网站建设公司引导交互 网站
  • 搭建网站多少费用网站注册备案之后怎么做网站
  • 私人建网站需要什么纺织行业网站怎么做
  • php手机网站后台源码纪检网站建设
  • 做头条信息流要网站吗签合网站是哪个好