Android Http 客户端编程设计模式(步骤):
1.网络权限:添加INTERNET用户权限。
2.UI设计:设计用户界面。
3.发出请求:客户端提交HTTP请求,提交数据,切记不能在UI线程完成。
4.接收响应:接收服务器端的响应,获取服务器返回数据。
5.UI更新:客户端业务处理,更新UI。...
分类:
移动开发 时间:
2014-05-18 07:29:08
阅读次数:
370
1、使用新建线程结合handler来更新UI线程中的 ListView,快速点击“刷新”,会出现下面的错误:
??
The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not mod...
分类:
其他好文 时间:
2014-05-15 02:30:17
阅读次数:
254
名词解析全局队列global主队列mian_queue串行队列create队列queue异步async同步sync异步和同步
与方法无关,与队列相关同步主要用来控制方法的调用顺序1.主队列2.全局队列3.串行队列主队列用于更新UI和界面相关的操作全局队列全局队列是异步执行的,没有先后顺序,可能会开启...
分类:
其他好文 时间:
2014-05-13 10:45:27
阅读次数:
270
这个错误很常见,基本上写线程操作都遇到过这个错误。根本原因是view控件的线程安全问题,通俗点讲就是所有的更新UI操作都需要在主线程(也就是UI线程中完成),而不能在新开的子线程中操作。
基本思路:既然子线程需要更新UI,但子线程自身又不能完成任务,所以只能通过建立一个通信机制,当子线程需要更新UI时,发消息通知主线程并将更新UI的任务post给主线程,让主线程来完成分内的UI更新操作。这个...
分类:
其他好文 时间:
2014-05-13 09:04:37
阅读次数:
311
在用Control. BeginInvoke 方法 更新UI时,需要验证两个前提:
1,Control==null 否则会引发null引用,比较明显的错误 2,DataGridView.IsHandleCreated==true
否则会引发“在创建窗口句柄之前,不能在控件上调用 Invoke 或 B...
分类:
其他好文 时间:
2014-05-08 15:29:28
阅读次数:
331
如今Android上很多应用都采用底部菜单控制更新的UI这种框架,例如新浪微博
点击底部菜单的选项可以更新界面。底部菜单可以使用TabHost来实现,不过用过TabHost的人都知道自定义TabHost究竟是有多麻烦的,原生TabHost的风格是不依附屏幕的底部的,要依附底部就要重写布局。
TabHost设置的Container可以管理UI的显示,UI可以用LayoutInflater动态生成,也可以是Activity,但不好管理Activity的生命周期。然后用TabHost控制显示UI的显示。...
分类:
移动开发 时间:
2014-05-07 13:32:36
阅读次数:
465
Android为了降低这个开发难度,提供了AsyncTask。AsyncTask就是一个封装过的后台任务类,顾名思义就是异步任务,更通俗地说就是一个执行后台任务的线程而且他还会自动通知主线程更新UI优点:
结构清晰,容易理解。缺点 代码量稍大下面直接看代码 1 private class Asy.....
分类:
移动开发 时间:
2014-05-06 08:50:11
阅读次数:
373
关于Handler的总结。
Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。
Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。
MessageQueue:...
分类:
移动开发 时间:
2014-05-03 21:57:10
阅读次数:
365
Handler主要接受子线程发送的数据, 并用此数据配合主线程更新UI..
当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发。比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如: 联网读取数据或者读取本地较大的一个文件的时候,你不...
分类:
移动开发 时间:
2014-05-02 23:20:06
阅读次数:
512