笔记_第五章

第五章

  • 广播分类

    • 标准广播,完全异步,所有广播接收器都会在同一时刻接收到广播,不可拦截

    • 有序广播,同步广播,广播接收器按照优先级接收广播,同一时刻只会有一个接收器能收到广播,等接收器的逻辑处理完后,再把广播传递出去,也可以选择把广播拦截。

  • 广播接收器可以根据自己感兴趣的广播进行注册,当感兴趣的广播发出时,接收器就会接收到广播并且在内部进行逻辑处理。

  • 如何创建一个广播接收器?

    • 创建一个java类,继承自BroadcastReceiver,并重写父类的onReceive方法,在方法内部处理接收到广播后的逻辑。

  • 注册广播的两种方式

    • 在代码中动态注册

      • IntentFilter intentFilter = new IntentFilter();
        //添加想要监听的广播对应的action
        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
        receiver = new NetWorkChangeReceiver();
        registerReceiver(receiver,intentFilter);
      • @Override
        protected void onDestroy() {
            super.onDestroy();
            unregisterReceiver(receiver);
        }
      • 获取网络状态:

        • ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
          ​
          NetworkInfo info = manager.getActiveNetworkInfo();
          if (info != null&& info.isAvailable()){
              Toast.makeText(getApplicationContext(),"net work is Available",Toast.LENGTH_SHORT).show();
          }else {
              Toast.makeText(getApplicationContext(),"net work is unAvailable",Toast.LENGTH_SHORT).show();
          }
      • 优点:可以自由控制广播的注册和注销,灵活性比较大

      • 缺点:必须要程序启动之后才会接收到广播,因为注册的逻辑是写在onCreate里面

    • 在AndroidManifest.xml中静态注册

      • 创建一个类继承BroadcastReceiver,重写receive方法

      • 在AndroidManifest.xml中注册,并添加需要的权限

      • <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
        ...
        <receiver
            android:name=".BootCompleteReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        ​
        ​
        </receiver>
  • 广播接收器不允许开启线程,当onReceive方法运行了较长时间而没有结束时,程序就会报错,因此,广播接收器扮演的是一种打开程序其他组件的角色,比如创建一条状态栏通知,或者启动一个服务

  • 发送自定义广播

    • 发送标准广播

      • 创建一个广播接收器。

      • 注册广播接收器并且通过intent-filler指定接收器能够接收什么广播

      • Intent intent = new Intent(“com.example.MY_BRROADCAST”);

        sendBroadcast(intent)

      • 可以通过intent给广播接收器传递一些数据

    • 发送有序广播

      • 将上面的sendBroadcast 改为 sendOrderBroadcast(intent,null)

      • 两个参数,第一个仍然是intent,第二个是和权限相关的字符串,传入null就可以了

      • 注册广播接收器的时候在intent-filter参数中设置优先级 priority = "xx"

      • 接收器中可以通过abortBroadcast方法将广播截断

  • 本地广播

    • 使用LocalBroadcastManager 对广播进行管理

    • getInstance方法获得LocalBroadcastManager实例

    • sendBroadcast(intent) 发送本地广播

    • registerReceiver(localReceiver,intentFilter)注册本地广播

    • unregisterReceiver 注销本地广播

    • 本地广播无法通过静态注册

    • 本地广播比全局广播更高效

  • GIT:

    • 添加代码或者文件

      • git add fileName

    • 添加目录中所有文件

      • git add .

    • 查看当前用户的用户名

      • git config --global user.name

      • git config --global user.email

    • 退出

      • exit

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值