AsyncTask理解- Day36or37
生活随笔
收集整理的這篇文章主要介紹了
AsyncTask理解- Day36or37
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
AsyncTask理解- Day36or37
mobile 5.0
1.手機歸屬地查詢 AtoolsActivity
Assets目錄特點
問題堆棧
AsyncTask理解
作用:主要是用來異步消息的處理。主要為了程序員方便從子線程切換主線程中。
參數
- . Params
在執行AsyncTask時需要傳入的參數,可用于在后臺任務中使用。
- . Progress
后臺任務執行時,如果需要在界面上顯示當前的進度,則使用這里指定的泛型作為進度單位。
- . Result
當任務執行完畢后,如果需要對結果進行返回,則使用這里指定的泛型作為返回值類型。
需要復習方法
-
onPreExecute()
在后臺任務開始執行前調用
-
doInBackground(Params...)
后臺任務執行方法,主要用來執行查詢,比價耗時的任務操作。 其實右面原理就是在后面開啟了一個子線程。所以不能操作UI
-
onProgressUpdate(Progress...)
進度條方法,后臺線程會很快的調用個方法,傳遞過來一些進度。如果我們進度參數給的是Integer的話,就是用整形來計算進度,這里可以操作主線程的UI
-
onPostExecute(Result)
當子線程執行結束以后,調用的方法。這個方法可以操作UI線程。也就是doInBackground(..)方法。參數就是該方法設置fang
使用
/*** 異步加載
*/
public void fillData()
{
new AsyncTask<String, Integer, String>()
{
// 程序運行前
@Override
protected void onPreExecute()
{
mLoadProgressBar.setVisibility(View.VISIBLE);
// 顯示加載進度
super.onPreExecute();
}
// 程序運行時
@Override
protected String doInBackground(String... params)
{
mBlackNumList = dao.getAllBlackNum();
return null;
}
// 運行后
@Override
protected void onPostExecute(String result)
{
mLoadProgressBar.setVisibility(View.INVISIBLE);
if (result == null)
{
adapter = new BlackNumAdapter();
mBlackNumListView.setAdapter(adapter);
} else
{
adapter.notifyDataSetChanged();
}
}
}.execute();
}
心得
轉載于:https://www.cnblogs.com/ganwei/p/4802468.html
總結
以上是生活随笔為你收集整理的AsyncTask理解- Day36or37的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单好用的sshfs -- 通过ssh映
- 下一篇: Size Balanced Tree