android sdk android handler能不能传递较多数据?
android handler能不能传递较多数据?
这没有问题:处理程序主要接受子线程发送的数据,并使用这些数据用主线程更新UI。说明:当应用程序启动时,Android将首先打开一个主线程(即UI线程)。主线程是管理界面中用于分发事件的UI控件。例如,如果您单击一个按钮,Android将向该按钮分发事件以响应该操作。如果此时需要一个耗时的操作,例如在Internet上读取数据或读取一个大的本地文件,那么这些操作不能放在主线程中。如果将它们放在主线程中,接口将假装死亡。如果没有在5秒内完成,Android系统将收到错误提示“强制关机”。此时,我们需要将这些耗时的操作放在一个子线程中,因为子线程涉及UI更新,而Android主线程是不安全的,也就是说,UI更新只能在主线程中进行,子线程中的操作是危险的。此时,处理程序出现。为了解决这个复杂的问题,由于处理程序在主线程(UI线程)中运行,它和子线程可以通过消息对象传递数据。此时,处理程序负责接受子线程传递的消息对象(包含数据)(子线程通过sedmessage()方法传递消息对象),将这些消息放入主线程队列,并与主线程协作更新UI。
Android在子线程用handler发送的消息,主线程是怎么loop到的?
可访问
!但是,您不能在非UI线程(子线程)中创建处理程序。因此处理程序应该在UI线程(主线程)中创建,然后在非UI线程(子线程)中使用。
例如,您可以在UI线程(主线程)中创建:handlerhandler=newhandler()
,然后在非UI线程(子线程)中使用它handler.sendEmptyMessage文件(0)
这样您就可以通过多线程处理Android用户界面,这是异步处理用户界面的几种方法之一。
希望对您有所帮助!
android sdk androidhandler关系 基于android的app开发
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。