Android入门——AppWidget及Broadcast的使用

实验说明##

  • 实验平台:Android Studio 2.0
  • 测试平台:Android 4.2

实验内容##

  • 生成安卓APK并成功安装在手机端,运行结果与实验要求一致。
  • 实现静态注册和动态注册。
  • 动态注册要求:
    • 可以编辑广播的信息,点击Send 按钮发送广播。
    • 设置一个按钮进行广播接收器的注册不注销。
    • 广播接收器若已被注册,发送出的广播信息能够及时更新桌面上 Widget 上文字内 容及更新为默认dynamic 图片。
    • 点击Widget 可以跳转回主界面。
  • 结果如下所示:


    Fig.1:进入APP后的第一界面,静态注册和动态注册按钮。
    • Fig.2:任意点击一个列表项后,回到主屏幕;
    • Fig.3:在主屏幕Widget,可以看到图标显示正常并出现水果名字
    • Fig.4点击动态注册后跳转到该页面,输入要广播内容为“123”,点击“Register Broadcast”,再次点击“send”;
    • Fig.5:在主屏幕Widget可以看到出现了图标,并输出之前输入的文字内容;

实验步骤及关键代码##

此次实验是在该实验的基础上进行,大部分代码都没有变化,只是新加入了widget类并重写了相关的函数,在关键代码中就只给出了新添加的内容,与实验四相同的代码及内容不再赘述。

  • 首先新建widget的java类,该部分在通过Android studio自带的生成时,会有相应的xml 文件生成,实验时用到了软件自动生成的java类并重写了相关方法,具体代码如下:


  • 首先需要重写onUpdate函数,该函数中用到了PendingIntent,并使用了静态方法 getActivity,该方法可以使得Intent跳转到另一个activity组件;
  • RemoteViews函数用于允 许用户程序修改主屏幕的View,实验中的结果是:当我们点击静态注册的某项内容时,会在主 屏幕的widget更新刚刚被点击的内容并显示 。
  • 在最后,需要对主屏幕的widget设置图片点击监听事件,当点击图片时,可以返回应用程序的 主页面;在每次点击相关的注册内容后,需要调用appWidgetManager对widget的内容进行更 新。
  • 接下来还需要重写onReceive函数,具体代码如下:
  • 实验里依旧使用bundle来传送相关数据,并且为静态注册设置动作为“STATICATION”这里用 到了setTextViewText和setImageViewResource函数,函数中将相应的水果图片和名字获得后 利用Widget布局文件中的id,传送过去,使得主屏幕Widget和应用程序能够时时保持数据的同 步;最后设置相应图片的点击事件并能够返回主屏幕。
  • 动态注册重写onReceive函数,内容不静态的相似,函数使用方法也相同,代码中给出了注 释,在此就不赘述,只给出相应的实现代码:


  • 最后需要对设置的静态和动态事件进行注册:


  • 最后给出软件自动生成布局文件:


工程具体代码请戳Lab5

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,136评论 25 709
  • 1.什么是Activity?问的不太多,说点有深度的 四大组件之一,一般的,一个用户交互界面对应一个activit...
    JoonyLee阅读 11,031评论 2 51
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,401评论 30 472
  • 课改,一直在路上 听崔教授《做最简约的“课改”》报告有感 陵阳镇初级中学 王志国 9月24日,因郭校长的邀请,山...
    崔成林阅读 5,707评论 0 0

友情链接更多精彩内容