1.前言
最近和实验室的朋友一起做了一个项目,我主要负责安卓应用开发。开发中遇到了许多新手常见问题,下面就是这些问题和解决方案。
2.正文
App的主要功能是通过和服务器交互,获取服务器端的json文件,然后通过安卓UI组件动态显示出来。点击对应的按钮则向服务器发出对应请求。
做App时主要遇到了两个错误。第一就是直接在主线程中发送网络请求;第二就是在其他线程中修改UI组件。这两个错误其实是安卓开发的常识性错误:不能在主线程中访问网络;不能在其他线程中获取和修改UI组件。
具体错误及解决方法
不能在主线程中访问网络:新开一个线程来访问网络。
Only the original thread that created a view hierarchy can touch its views(只有原来创建UI组件的线程才能访问这个UI组件):参考这篇文章戳这里。下面是我参考这篇文章后的主要代码片段。
//新建一个Hander
private final Handler mHandler = new Handler();
//更新UI组件的runnable接口
final Runnable mUpdateResults = new Runnable() {
public void run() {
updateUI();
}
};
//更新