pulltorefresh学习

知识扩展:

1.两种List

ArrayList:缺点:内存使用量要大一些,添加删除元素效率较低。元素随机访问的效率较高。

LinkedList:相反。

2.异步操作AynsTask

作用是为耗时的程序开辟一个新的线程进行处理,是对Thread 类的一个包装。

(1)类的结构 

doInBackGround(Void... params)

onPreExecute()

onPostExecute(String[] result)

onProgressUpdate((Void... values)

每个子类至少 重写 doInBackGround()

(2)原理     

    主线程调用AsynTask子类的execute()------>onPreExecute()启动,在主线程中执行,可以用来写一些 提示代码

------->启动新线程, 执行doInBackground(),异步数据处理--------->异步线程结束,数据传递给onPostExecute(),主线程中调用 onPostExecute(),可以进行结束提示处理。

   如果在 子线程执行 doInBackground时候 想让主线程处理一些 数据 (如进度),可以调用 publishProgress()方法,这时,主线程会调用 子线程的 onProgressUpdate()进行处理


pull to refresh 使用

Layout

<!--
  The PullToRefreshListView replaces a standard ListView widget.
-->
<com.markupartist.android.widget.PullToRefreshListView
    android:id="@+id/android:list"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    />

activity直接继承 ListActivity

// Set a listener to be invoked when the list should be refreshed.
((PullToRefreshListView) getListView()).setOnRefreshListener(new OnRefreshListener() {
    @Override
    public void onRefresh() {
        // Do work to refresh the list here.
        new GetDataTask().execute();
    }});private class GetDataTask extends AsyncTask<Void, Void, String[]> {
    ...
    @Override
    protected void onPostExecute(String[] result) {
        mListItems.addFirst("Added after refresh...");
        // Call onRefreshComplete when the list has been refreshed.
        ((PullToRefreshListView) getListView()).onRefreshComplete();
        super.onPostExecute(result);
    }}


你可能感兴趣的:(pulltorefresh学习)