Android 基础篇(三)细节
来源:互联网 发布:中国药科大学网络教育 编辑:程序博客网 时间:2024/05/18 02:35
关于UI线程与子线程的通讯方式
View.post 可读性差,维护困难,一来View对象
AsyncTask
handler.post 强大,用的多
RunOnUIThread
都可以实现主进程更新UI
对主进程UI界面控件进行修改的模型图,如图:
关于 applicationContext 和 context
官网的说法是:
1,如果你觉得这个对象用完就扔,那么使用context,反之活的久一点
2,如果你很多地方使用applicationContext 并且还忘记unregister,unbind,etc 那么就很容易造成泄露,等严重错误;
关于notifycation
收到的时候不会打断当前应用程序,,会现在状态栏提示一下,是一种延迟消息
关于bundle
bundle是一个类似与map的对象,只不过他的key是String
关于xml文件处理
javaee平台有两种方式 sax dom
android 集成了pull解析器(android平台的xml很多,足以见得该方法的优越性)
xml文件如:(有属性的叫Emelment Node 无属性的Node叫Text Node)
<?xml version="1.0" encoding="utf-8"?><manifest> <application id="application1"> <activity1> 11 </activity1> <activity2> 12 </activity2> </application> <application id="application2"> <activity1> 21 </activity1> <activity2> 22 </activity2> </application></manifest>
解析部分示例伪代码:
XmlPullParser xmlPullParser = Xml.newPullParser(); xmlPullParser.setInput("文件流","文件编码:UTF-8"); int event = xmlPullParser.getEventType();//这里保存这个事件类型供while判断是否结束 while (event != XmlPullParser.END_DOCUMENT){ switch (event){ case XmlPullParser.START_DOCUMENT: //文档解析开始的操作,一般是序列化,初始化 break; case XmlPullParser.START_TAG: //每一个节点 xmlPullParser.getName() 获取节点名字 activity1 xmlPullParser.getNextText()获取activity1这个节点的值,并移动到下一个节点 break; } event = xmlPullParser.next();//递归找到下一个节点(这里需要跑一个异常Exception) }
生成部分示例伪代码:
XmlSerializer serializer = Xml.newSerializer(); serializer.setOutput("输出流","UTF-8"); serializer.startDocument("UTF-8",true);//第二个参数代表是否有其他关联xml,这里要跑一个异常 serializer.startTag(null,"manifest");//开始加入标签,第一个参数代表命名空间 for(){//for循环加数据 serializer.startTag(null,"application"); serializer.attribute(null,"id","application1"); serializer.startTag(null,"activity1"); serializer.text("11"); serializer.endTag(null,"activity1"); serializer.startTag(null,"activity2"); serializer.text("12"); serializer.endTag(null,"activity2"); serializer.endTag(null,"application"); } serializer.endTag(null,"manifest");//对应前面的标签结束标志 serializer.endDocument();//对应前面的文档结束标志 }
持续更新中….
阅读全文
0 0
- Android 基础篇(三)细节
- C++基础::shared_ptr 编程细节(三)
- Android基础(三)
- Android进程间通信(IPC)之实现细节篇(三) SmTest(addService)
- android之碎片(fragment)三(细节)
- Android Notification 基础 (三)
- android基础---textView(三)
- Android基础总结(三)
- Android基础学习(三)
- Python编程细节(三)
- C++基础细节(一)
- Android自定义View基础篇(三)之SwitchButton开关
- Android Studio学习基础篇三
- Android近场通信---NFC基础(三)
- Android基础综合案例(三)
- Android近场通信---NFC基础(三)
- Android近场通信---NFC基础(三)
- 【Android基础】(9)UI控件(三)
- opencv2.4.9+VS2013中imread和cvLoadimage的使用区别
- Matlab函数meshgrid的作用
- 如何在app中打开支付宝进行打赏开发者
- 【怎样写代码】小技巧 -- 关于引用类型的两种转换方式
- 设计模式之观察者模式
- Android 基础篇(三)细节
- Android玩 --- Material Design(1) --- Recycleview的装饰(2)
- C++高精度算法之比大小
- eclipse安装hibernate插件
- 【Quartz】 JobListener、Triggerlistener、SchedulerListener介绍与使用
- 一些建站过程的图片
- [YTU]_1055 (输入字符串以及输出)
- 算法 排序算法之时间复杂度和空间复杂度
- G