Android事件处理的两种方式是什么


这篇文章主要讲解了“Android事件处理的两种方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android事件处理的两种方式免费云主机域名是什么”吧!安卓提供了两种方式的事件处理:基于回调的事件处理和基于监听的事件处理。基于监听的事件处理基于监听的事件处理一般包含三个要素,分别是:Event Source(事件源):事件发生的场所,通常是各个组件Event(事件):事件封装了界面组件上发生的特定事件(通常就是用户的一次操作)Event Listener(事件监听器):负责监听事件源发生的事件,并对各种事件作出相应的响应下面使用一个简单的案例介绍按钮事件监听器布局文件就是简单的线性布局器,上面是一个EditText,下面是一个Button按钮使用Java代码给Button注册一个事件监听器单击按钮后,文本框就会显示”bn按钮被单击了!”外部类作为事件监听器类如果某个事件监听器确实需要被多个GUI界面所共享,而且主要是完成某种业务逻辑的实现,那么就可以考虑使用外部类形式来定义事件监听器类。我们定义一个类实现OnClickListener接口,并且实现onClick()方法然后编辑一个简单的线性布局,有两个输入框和一个按钮最后编写一个Activity为了能够顺利发送短信,需要重新开启一台模拟器,填写模拟器的ID,否则程序会报错我的电脑配置没有办法同时运行两个虚拟机,所以这里就不展示了。基于回调的事件处理回调这个词在编程领域经常被提及,我的理解是,回调实际上是某个类中早已经定义好的方法或者接口,当我们继承或者实现接口的时候,可以相应地重写对应方法,或者实现相应接口。在程序运行的特定位置会调用特定的方法,当我们重写了某个方法之后,就可以在特定情况下实现对应的逻辑。最最简单的一个例子就是Activity的onCreate()方法,当我们初始化一个Activity类的时候,就会调用这个方法,如果我们不重写这个方法,那么程序就会调用默认的onCreate()方法,如果我们重写了这个方法,那么程序就会调用我们重写的onCreate()方法。我们可以用回调的方式实现一个跟随手指的小球。首先自定义一个自定义的View然后再xml文件中加入自定义组件在Activity中只需要简单地加载界面就行,所有的逻辑都在自定义组件中编写,这样可以让程序结构更加清晰。响应系统设置的事件Configuration类专门用于描述手机设备上的配置信息,这些配置信息既包括用户特定的配置项,也包括系统的动态设备配置。点击按钮就可以获取相应的配置信息Handler消息传递机制Handler类的主要作用有两个:在新启动的线程中发送消息和在主线程中获取处理消息。我们可以通过一个新线程来周期性地修改ImageView所显示的图片,通过这种方式来开发一个动画效果。上述代码中使用TimerTask对象启动了一个新的线程,由于启动的线程没有办法直接访问Activity中的界面组件,因此使用Handler传递消息,从而实现间接访问。程序会周期性地变换显示的图片和Handler一起工作的组件有三个:Message:Hanlder接收和处理的消息对象Looper:每个线程只能拥有一个Looper,他的loop方法负责读取MessageQueue中的消息,读到信息之后就把消息交给发送该消息的Handler进行处理MessageQueue:消息队列,他用先进先出的方式来管理Message我们通常会将比较耗时的操作放到一个新的线程中去执行,如果使用UI线程执行耗时操作,那么线程很可能被阻塞,从而降低用户体验。我们可以看一下Looper对象中的prepare()方法这是一个静态方法,大概的逻辑就是实例化一个Looper对象放到sThreadLocal容器中,并且容器中只能有一个Looper对象,假如在实例化前就已经存在了Looper对象,那么就抛异常。我们可以看到Looper对象的构造方法是用private修饰的,也就是说我们不能自己实例化Looper对象,只能通过调用静态的prepare()方法进行构造。最后构造得到的实例对象是放到ThreadLocal容器中的Looper对象最重要的方法就是loop(),该方法会反复检查MessageQueue中是否有消息,如果有消息就会取出来进行处理,如果没有消息就会进行阻塞,直到取出消息为止下面我们就写一个简单的程序计算到某个指定数为止的所有质数,并且用Toast显示出来。界面代码比较简单,就是一个文本框和一个按钮在Java代码中我们需要定义一个线程,里面定义一个Handler类,该Handler类的处理消息的逻辑是先从消息中取出数据,然后进行计算,最后使用Toast显示计算结果。按钮的点击事件的处理逻辑是,首先封装一个Message对象,然后将Message对象传递给线程中的Handler对象。感谢各位的阅读,以上就是“Android事件处理的两种方式是什么”的内容了,经过本文的学习后,相信大家对Android事件处理的两种方式是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: Nodejs新特性async和await如何使用

这篇“Nodejs新特性async和await如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Nodejs新特性async和await如何…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 05/16 10:36
Next 05/16 10:56

相关推荐