转载请标明出处:http://blog.csdn.net/sk719887916/article/details/40049137,作者:skay
从上一篇学习中,学习了多媒体技术中的怎么去用josup加载一个网页并解析html标签的用法,今天就接着前篇 【安卓TV开发(七) 移动智能终端多媒体之在线解析网页视频源】 的学习。同时也了解下避免安卓内存溢出解决方式和安卓常用的几种UI更新的方式。
一 准备异步加载工具
1 新建 VideoLoaderTask 用来获取视频列表
/**
* Represents an asynchronous loaderVideoInfos task used to authenticate the
* user.
*/
public class VideoLoaderTask extends
AsyncTask<TvModle, String, List<TvTaiModel>> {
@SuppressWarnings("unchecked")
@Override
protected List<TvTaiModel> doInBackground(TvModle... params) {
// TODO Auto-generated method stub
return lists = DataVideoManager.getData(params[0]);
}
@Override
protected void onPostExecute(final List<TvTaiModel> resList) {
mAuthTask = null;
showProgress(false);
if (resList != null && resList.size() > 0) {
// Log.e(TAG ,success +"--");
adapter = new VideoWallAdapter(VideoInfoActivity.this, 0,
resList, mPhotoWall);
mPhotoWall.setAdapter(adapter);
adapter.notifyDataSetChanged();
} else {
Toast.makeText(VideoInfoActivity.this, "失败", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onCancelled() {
mAuthTask = null;
showProgress(false);
} 此类设计到安卓AsyncTask的用法,需要大家了解此Api,具体原理是利用Thead+ handler机制实现,实际开发中我们更新UI也可以用安卓自带的UI线程runOnUiThread 代码可以如下,具体执行动作在run()实现,不管是用哪种
的方式更新UI,必须注意的是主线程不能执行网络耗时操作任务,容易出现ANR,(安卓4.0rom以后 主线程直接不能访问网络)。UI也必须由主线程来更新,子线程无UI操作权限。
1) 利用UI线程
this.runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
}); 2 ) 利用handler发送Message

本文是安卓TV开发系列的第八篇,介绍如何在移动智能终端上使用多媒体爬虫技术获取并加载网页视频源。通过创建`VideoLoaderTask`进行异步加载,处理内存溢出问题,以及利用UI线程更新UI。同时,文章讨论了图片缓存逻辑,以及如何创建`VideoWallAdapter`以实现GridView的适配。最终实现了将音悦台MV资源解析并在自定义APP上展示的功能。
最低0.47元/天 解锁文章





