美文网首页
Android中的广播

Android中的广播

作者: 别看后面有人 | 来源:发表于2021-06-28 21:12 被阅读0次

Android中的广播分为两种:标准广播和有序广播,标准广播是一种完全异步的广播,在广播发出之后,所有的BroadCastReceiver几乎在同一时间收到这条广播信息,因此他们没有先后顺序之分,这种广播的效率比较高,但是也无法被截断,有序广播是一种同步的广播,在广播发送之后,同一时刻只有一个BroadcastReceiver能收到广播消息,而且是有先后顺序的,优先级高的先执行,并且可以截断正在传递的广播
1、动态注册监听时间变化:定义一个TimeChangeReceiver,这个类继承自BroadcastReceiver的,并且重写父类onReceive()方法,这样当系统时间发声变化时就会得到执行。具体代码如下:

class BroadcastActivity:AppCompatActivity() {

    lateinit var timeChangeReceiver:TimeChangeReceiver
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContentView(R.layout.broadcast_activity)

        val initentFilter=IntentFilter()
        initentFilter.addAction("android.intent.action.TIME_TICK")
        timeChangeReceiver=TimeChangeReceiver()
        registerReceiver(timeChangeReceiver,initentFilter)

    }

    override fun onDestroy() {
        super.onDestroy()
        unregisterReceiver(timeChangeReceiver)
    }

    inner class TimeChangeReceiver:BroadcastReceiver(){
        override fun onReceive(context: Context?, intent: Intent?) {
            Log.d("TAG", "onReceive: changed")
            Toast.makeText(context,"time changed",Toast.LENGTH_LONG).show()
        }

    }

}

打印结果:
06-28 05:06:00.534 17933-17933/com.app.activitytest D/TAG: onReceive: changed
06-28 05:07:00.534 17933-17933/com.app.activitytest D/TAG: onReceive: changed
06-28 05:08:00.534 17933-17933/com.app.activitytest D/TAG: onReceive: changed
06-28 05:09:00.534 17933-17933/com.app.activitytest D/TAG: onReceive: changed
06-28 05:10:00.534 17933-17933/com.app.activitytest D/TAG: onReceive: changed
06-28 05:11:00.534 17933-17933/com.app.activitytest D/TAG: onReceive: changed

2、静态注册实现开机启动

class BootComplete :BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
       
        Log.d("TAG", "onReceive: finish")
    }
}

manifest文件

 <receiver android:name=".BootComplete"
            android:exported="true"
            android:enabled="true">
            <intent-filter >
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>

相关文章

  • Android笔记——BroadcastReceiver

    1.0Android中的广播类型 Android中的广播主要可以分为两种类型:标准广播和有序广播。 标准广播(no...

  • BroadcastReceiver的使用

    Android中的广播分为标准广播(Normal broadcasts)、有序广播(Ordered broadca...

  • BroadcastReceiver基础知识

    什么是广播 在Android中,广播是一种广泛运用的在应用程序之间传输信息的机制,Android中我们要发送的广播...

  • Android中的广播

    Android中的广播 广播接受器,可以比喻成收音机。而广播则可以看成电台。 Android系统内部相当于已经有一...

  • Android中的广播

    Android中的广播分为两种:标准广播和有序广播,标准广播是一种完全异步的广播,在广播发出之后,所有的Broad...

  • Android 学习记录三:广播

    广播机制简介 Android中的广播机制更加灵活,因为Android中的每个应用程序都可以对自己感兴趣的广播进行注...

  • Android 广播

    广播接收器 是Android的四大组件之一,可见广播在Android中的重要性; 1. 什么是广播? 广播(Bro...

  • Android广播

    参考:Android总结篇系列:Android广播机制Android广播机制 一. 广播 1. 广播是什么? 广播...

  • Android广播机制之标准广播(Normal broadcas

    Android中的广播主要分为两种类型:标准广播和有序广播。 定义: 标准广播(Normal broadcasts...

  • Broadcast Receiver 面试详解

    一、广播 1、广播的定义 BroadcastReceiver,中文直译为“广播接收者”,在Android 系统中,...

网友评论

      本文标题:Android中的广播

      本文链接:https://www.haomeiwen.com/subject/xxequltx.html