android费事操作的加载方法
android里边总有一些费事的操作,如果运行在主线程里,整个应用都停止在哪里,直到操作完,给用户的体验不好,感觉很卡。最近在做新闻浏览app,思路是:从门户网站的服务器下载RSS(缩减版的新闻列表),解析该文件,提取超链接、标题、和事件,显示在
listview上。由于刚开始要从网上下载和加载资源,应用好长时间都是黑屏,直到数据更新完才显示。
后来想到,在下载的过程中可以显示下载界面,等下载完了在显示更新界面。实现起来也很简单,可以再布局文件设置要显示和隐藏的布局组件。声明一个全局状态控制量。刚开始设置它为初始化状态,加载布局文件,刚开始显示下载界面。这是在主线程启动一个子线程,在子线程处理下载和解析事件,并时刻发送消息,等这些操做完了,改变当前状态为完成状态。在主线程声明一个Handel,根据当前的状态,设置布局文件里不同块的可见与隐藏。 这样,当我们在显示下载界面的时候,子线程在处理下具体操作,等操作完成,子线程发出消息,主线程接到消息,更新界面。这样用户的体验就得到改善。