Android学习2——事件机制

一、学习目标
1 、了解 Android 事件处理机制;
2 、掌握基于监听的事件处理机制和基于回调的事件处理机制;
3 、使用 Configuration 类获取系统的配置信息;
4 、熟练掌握 Handler 的消息传递机制。
5 、掌握 ButterKnife 开源框架
6 、设计一个登录界面
二、环境
1.JDK-15.0.2 以上
2.Android Studio 4.1.2 以上
3.Android 10.0 API level 29
三、项目实现
1. 项目结构
项目共有 3 个页面,每个页面都含有 Java 逻辑页面以及 activity 页面。
主页面内有两个 class,根据题目要求构建
2. 模块划分
1)主界面
2)ProgressDialogTest:显示进度条
3)SystemInfoActivity:显示系统信息
3. 使用方法:
1) 匿名内部类
t3.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {
 t0.setText("匿名内部类");
 }
 });
2 )定义一个负责更新的进度的 Handler
// 定义一个负责更新的进度的 Handler
Handler handler = new Handler(){
 @Override
 public void handleMessage(@NonNull Message msg) {
 super.handleMessage(msg);
 pd.incrementProgressBy(1);
 } };
4. 测试结果

 

问题思考 [ 回答提出的问题,总结实验过程,问题解决方法及实验心得 ]
1. Android 如何避免 UI “死机”影响用户体验?
在 BoadcastReciever 的 onRecieve()不要执行耗时的操作。执行前台广播的 onRecieve()执行不要超过 10 秒。ContentProvider 的 publish 也是要在 10 秒 内执行完成。
2. 在那些场景下会出现耗时操作,如何避免影响?
在 Android 开发中有很多地方需要避免一些耗时操作,总的来说就是避免在主 线程中执行耗时操作,这些地方如果执行耗时操作容易造成程序崩溃,以下是 总结的一些小点:
1)Service 的 onStartCommand() 和 onBind() 方法中不能执行耗时操作
2)BroadcastReceiver 的 onReceive 方法不能执行耗时操作,因为这个方 法是在主线程执行的,耗时操作会导致 UI 不顺畅,超过 10 秒钟可能会被系统 杀死
3)UI 线程执行耗时操作,可以采用 View.post 方法来执行,或者使用 Handler
4)onPause 中不适合做耗时较长的操作,Activity 的跳转要先执行完前一 个 Activity 的 onPause 方法,如果执行耗时操作会影响 UI 的显示 解决方法:HandlerThread
简单而言,HandlerThread 是一个包含了 Looper 的 Thread,我们可以直接使用 这个 Looper 创建 Handler。
本次实验重点在于监听器的实现方法,在设备信息界面 出现了 bug,导致程序崩溃,目前暂未知悉原因。
Gitee 源码仓库地址 [ 项目源码地址 ]
https://gitee.com/mo-rugui/XZY2

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Neymessi_JR

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值