android刷新UI的几种方式总结
来源:互联网 发布:资海网络集团怎么样 编辑:程序博客网 时间:2024/06/11 12:52
首先,android的UI刷新是在主线程(UI线程)中完成的。四大组件中,activity和service运行在主线程中。现在总结自己在项目中常用到的UI刷新方式。
第一,利用子线程发消息刷新UI。
子线程负责处理UI需要的数据,然后发消息到主线程来刷新UI。代码结构如下:
new Thread(new Runnable() {@Overridepublic void run() {Person person=new Person();person.setName(mName.getText().toString().trim());person.setPhone(mPhone.getText().toString().trim());Log.i("person",person.toString());DatabaseInfoFactory.getPersonDao(mContext).addPerson(person);Looper.prepare();Message msg=Message.obtain();msg.what=0x123456;handler.sendMessage(msg);Looper.loop();}}).start();
主线程中:
private Handler mHandler=new Handler(){@Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubsuper.handleMessage(msg);if(msg.what==0x123456||msg.what==0x123){fillData();setListener();}}};
第二,利用异步任务更新UI。代码结构如下:
new AsyncTask<Void,Void,Void>() {@Overrideprotected void onPostExecute(Void result) {if(mAdapter==null){mAdapter=new LeaveInfoAdapter();//设置数据适配器mLVleaveInfos.setAdapter(mAdapter);Log.i("测试", "异步任务显示后台获得数据库数据");}else {mAdapter.notifyDataSetChanged();}super.onPostExecute(result);}@Overrideprotected Void doInBackground(Void... params) {//获得要显示的数据mleaveInfos=mLeaveInfosDao.findAll();if (mleaveInfos==null) {Toast.makeText(HomeActivity.this,"请假数据不存在或是已经清除!", 500).show();}Log.i("测试", "异步任务后台获得数据库数据"+mleaveInfos.size());return null;}}.execute();
第三,利用配置文件+activity的生命周期方法刷新UI。
0 0
- android刷新UI的几种方式总结
- Android 更新UI的几种方式
- Android更新UI的几种方式
- Android 更新UI的几种方式
- Android 更新UI的几种方式
- Android: 在UI线程更新UI的几种方式
- Android中常见的几种定时刷新方式
- 在Android中常见的几种刷新方式
- 【UI布局优化】Android布局优化的几种方式
- Android中更新UI的几种方式
- 浅谈Android几种更新UI的方式
- Android中更新UI的几种方式
- Android 中更新 UI 的几种方式
- Android UI之ImageView旋转的几种方式
- android中更新UI的几种方式
- Android开发中更新UI的几种常用方式
- Android中更新UI的几种方式
- .net刷新页面的几种方式
- 怎样可以实现ppt转换pdf格式
- Android项目之无线点餐(2)--用户登录的客户端和服务器端实现
- 内存管理autorelease,retain,copy和assign的set方法和含义
- jqGrid的客户端排序问题
- 艳阳天
- android刷新UI的几种方式总结
- Hibernate性能优化之抓取策略和调用存储过程
- perl 递归地遍历目录下的文件
- 虚拟摇杆
- 商业智能、数据挖掘精品电子书下载汇总【60本】
- Unity3D 官方基础教程 Asset Workflow
- perl 打开和关闭文件
- cocos2d-x中的动作
- iOS 简单的聊天程序