• 广播(2018年5月30日)


    2018.5.23

    1、常驻广播接收者和非常驻广播接收者

    常驻广播接收者:使用AndroidManifest.xml注册广播接收者。接收者不随Activity销毁而销毁,也就是拥有独立的生命周期。

    非常驻广播接收者:使用registerReceiver(receiver,intentFilter)对广播接收者进行注册。同时需要使用unregisterReceiver(receiver)注销这个广播接收者。注册时表示创建广播接收者,注销时表示销毁这个广播接收者。生命周期由开发者决定。通常在activityonCreate方法中创建广播接收者,在onDestroy中销毁广播接收者。生命周期可控。

    【案例】接收短信时,给出回应。使用非常驻型广播接收者。

    1)按常驻型广播接收者,来试验。体会app被关闭,广播接收者仍然有效。

    2)非常驻型广播接收者,来试验。体会app被关闭,广播接收者也被关闭了。

     

    项目结构:

     

    MyReceiver.java

     

    MainActivity.java

     

     

    androidManifest.xml

     

    效果:

    App开启时,可以观察短信;

    App关闭后,不作出响应。

    2、使用非常驻型广播接收者观察网络变化

    应用场景:

    当用户使用Wifi下载时,突然断网,如果继续下载将使用流量下载,对于用户来说是不安全的。应该有程序可以监控到网络状态变化,一旦切换到流量时,给出提示。

    分析:

    广播发出什么消息?网络切换的消息

    接收者观察这个频道,当有网络切换时,作出响应。中断下载,提示现在正在使用流量。

    【案例】接收“网络切换”的消息。

    关注的频道:android.net.conn.CONNECTIVITY_CHANGE

    MyReceiver.java

     

     

    MainActivity.java

     

    androidManifest.xml

     

    测试:

    飞行模式开关下:

     

    3、使用广播实现桌面快捷方式的创建。

    角色:广播发送消息。

    接收者是android操作系统中定义的接收者。开发者无需关心。

    【案例】使用广播发送消息,传递给桌面快捷方式创建者创建快捷方式。

    核心是发送消息的频道(action),同时还要带有数据,数据包含了快捷方式图标、app的名称、其他信息(点击快捷方式会执行什么)。

    项目结构:

     

    activity_main.xml

     

    MainActivity.java

     

    androidManifest.xml

     

    效果:

    4、图片类的使用

    Bitmapandroid中经常使用的类。

    用于构造一个图片,往往图片非常占用资源,很多情况下是使用sdcard保存图片,app加载图片,而不是将图片当成资源安装在应用中。

    该类,可以用于创建图片,也可以从path路径中读取图片。

    api

    CreateBitmap(),直接创建图片;

    isRecycle(),判断是否回收,因为图片很占内存空间,所以用完需要回收。

    recycle(),bitmap实例不再使用就回收。

    相关类:

    BitmapFactory,用于创建图片的辅助工具类,也可以用于解析图片。

    api

    decodeFile(path),可以将一个文件解析成一个图片

    decodeStream(is),是一个输入流,将输入流解析成一个图片,下载图片时使用

    decodeResource(resid),resid引用的图片资源还原成图片。

    【案例】使用decodeFile(path)sdcard中获取图片加载到imageview上。

    步骤:

    1)将图片放入到storage

    2)使用BitmapFactorydecodeFile(path)获取图片

    3)将图片贴到界面上

     

    activity_main.xml

     

    MainActivity.java

     

    androidManifest.xml

     

    效果:

     

    上传图片:

     

    【作业】

    收到某某广播消息,receiver就把UIImageview改成storage中的某某图片。

    提示:receiver,不能够直接操作UI控件。使用handler处理。

     

  • 相关阅读:
    base64图片上传及回显
    C++类型转换
    threejs求两个向量的夹角
    实验数据记录
    工控机配置日志
    threejs两个向量旋转 一个向量绕零一个向量旋转一个角度后的向量计算
    SpringBootApplication cannot be resolved to a type
    python struct pack unpack
    日志
    python计算空间中两个向量的夹角
  • 原文地址:https://www.cnblogs.com/sanshengshitouhua/p/14581011.html
Copyright © 2020-2023  润新知