Android处理程序示例与多线程和处理程序类
Android系统的第一个版本引入了一些开创性的技术。用于在智能手机和其他设备上运行Android的硬件稳步越来越强大,允许谷歌创建一个更强大的操作系统,并使用每次传递升级做更多。为Android制作的应用程序也保持更好。专家介绍,Android将继续在可预见的未来留在世界上最受欢迎的移动平台。如果您想了解如何为Android开发应用程序,现在是时间。这介绍Android开发课程betwayapp下载安装可以帮助你开始。您需要在Java(以及最好的其他编程语言,如C ++和XML)中的强大基础,以开发良好的应用程序。如果你是java的新手,你可能需要首先借鉴这个课程的Android的java Essentials。
在本教程中,我们将为您提供处理程序和处理程序类的概述,它允许您将多线程功能添加到您的应用程序中。
多线程的概念
多线程不是Android最初支持的东西。只需引入Android 3.0,将多线程能力引入到平台上。
那么多线程究竟是什么?操作系统能够同时运行程序的不同部分。这些过程不会彼此干扰(在良好的书面程序或应用程序中),并且每个都被称为线程。把它想象成一个三明治:你并排切割面包和肉,然后将它们放在面包上。这些过程不会相互干扰 - 事实上,它们互相补充,它们都是相同程序的一部分,正在制作三明治。
在Android中,多线程通过处理程序类实现。多线程使用您的系统资源有效地完成任务。它还允许操作系统同时拼凑多个任务。
处理程序类
Handler类允许您处理并发送消息对象,该对象包含描述属于线程的消息Queue的描述和数据,以及可运行的对象。处理程序将允许您在未来指定时间执行消息对象和可运行的对象。处理程序的每个实例都将仅在声明时属于单个线程。Runnable对象是包含将执行的命令的对象,以便在程序中获取结果。
要清楚地向您解释,请使用处理程序来执行线程。它还允许构成一个程序互相通信的程序来防止冲突。
值得学习如何编写能够多线程的程序或应用程序的时间。它将使您的应用程序运行得更快,更好,这只能长期受益。你可以注册此Android开发机构betwayapp下载安装E为了学习这种技术,以及其他有价值的技术。
可以通过默认构造函数实现处理程序类,如下所示:
handler handlerobject = new handler();
它也可以通过使用参数化的Condancor来实现,如下所示:
Handler HandleObject = New Handler(runnable runnableObject,handler.callback callbackobject);
Android中多线程的限制:多线程安全
Android UI不是Multithreading Safe。这意味着什么?您需要了解Android操作系统运行应用程序以理解该概念的方式。
每当首次启动应用程序时,单个线程将保存应用程序的可逃性组件。此线程(主线程)通常用于处理应用程序中发生的事件并将其显示给用户。它还处理用户交互,例如当用户通过用户界面进行更改时。
现在,如果要执行新任务,则它将总是将分配给主线程。如果分配的任务是资源密集和耗时,则应用程序的UI被锁定 - 因为,正如我们之前提到的那样,主线程控制它。在任务完成之前,用户无法与应用程序交互。
在Android中,最好的编程实践是创建多个线程来处理时间密集型任务。这些线程不应有能力干扰UI显示。对UI显示的任何更改都应该通过主要,并且您应该启用其他线程与主线程通信以实现这些更改。你可以在这个Android课程中了解有关它的更多信息。
处理程序类的示例
我们可以使用可以使用XML文件创建的按钮对象显示Handler类的运行。XML文件的代码如下:
<按钮android:id =”@ + id / button1“android:layout_width =”wrap_content“android:layout_height =”wrap_content“android:layout_below =”@ + id / mytextview“android:layout_centerhorizoNtal =“true”android:layout_margintop =“50p”android:onclick =“buttonclick”android:text =“@ string / button_text”/>
此代码将在图形显示的中间创建一个按钮。您可以通过更改字符串资源来命名按钮。如果您需要帮助编写Android应用程序的基础知识,请查看本课程。
在此之后,我们将创建实际实现处理程序类的代码:
包com.nkm.thread;导入android.app.activity;导入Android.OS.Bundle;导入Android.OS.Handler;导入Android.Widget.Button;导入android.widget.textview;公共类HandleLerexample扩展活动{Handler examband = New Handler();按钮mybutton;TextView MyTextView; runnable运行= new runnable(){@override public void run(){//链接到按钮单击}}
我们在这里给了一个部分程序,您可以完成。该程序中最重要的部分是Runnable对象创建,可以调用其他方法进行多线程。如果您想帮助编写自己的Android计划,请查看本课程。
常用方法用于多线程的处理程序类
以下是一些方法处理程序类可以实现多线程:
- 公共void dispatchmessage(message msg):这里的系统消息
- 公共处理程序():这将使Handler实例与线程的循环器相关联。线程必须包含一个循环仪的工作。循环器是用于向线程提供消息循环功能的类。
- 公共处理程序(Looper nameofyourlooper):通过使用此方法指定它,您可以使用另一个循环器而不是默认循环仪。
- 公共处理程序(Looper nameofyourlooper,handler.callback nameofyourcallback):此方法,除了让您分配新循环仪之外,将允许您使用回调接口来处理消息。
- 公共决赛布尔邮政(runnable r):这将使Runnable对象R添加到MessageQueue中。处理程序此方法的实现将决定runnable对象转到哪个线程。
- 公共最终的空白removerballs(RUNNABLE R):可以使用此方法删除MessageQueue中的任何待处理的回调。
有关所有方法的列表,处理程序类可以让您实现,可以查看官方Android文件这里。我们建议您熟悉大多数方法(特别是处理回调的方法)以了解多线程。您可能需要在创建应用程序时使用许多这些方法。
这些方法并不像它们看起来那么复杂。但是,您需要牢固地了解Java以使用它们。如果您在任何时候都需要帮助,本课程可以帮助您了解使用Java与Android 4.0。