下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
【移動應(yīng)用開發(fā)技術(shù)】android中AsyncTask類的示例分析
AsyncTask類的聲明:Result執(zhí)行異步任務(wù)后,需要返回的結(jié)果的數(shù)據(jù)類型
publicfinalAsyncTask<params,Progress,Result>execute(params...params)<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="104dp"
android:onClick="doAsyncTask"
android:text="開始"
/>MainActivity:
public
class
MainActivity
extends
Activity
{
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("onCreate"
+
Thread.currentThread().getId());
}
public
void
doAsyncTask(View
view){
new
InnerAsyncTask().execute("");
}
private
class
InnerAsyncTask
extends
AsyncTask<Object,
Object,
Object>{
@Override
protected
Object
doInBackground(Object...
params)
{
for(int
i
=
0;
i
<
30;i++){
System.out.println("InnerAsyncTask"
+
Thread.currentThread().getId());
try
{
Thread.sleep(1000);
}
catch
(InterruptedException
e)
{
e.printStackTrace();
}
}
return
null;
}
}
}AsyncTask更新UIprotectedvoidonPostExecute(Resultresult)<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="104dp"
android:onClick="doAsyncTask"
android:text="開始"
/>
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_centerHorizontal="true"
android:layout_marginTop="22dp"
android:src="@drawable/abs"
/>MainActivity:
public
class
MainActivity
extends
Activity
{
private
ImageView
image;
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image
=
(ImageView)
findViewById(R.id.imageView1);
//
System.out.println("onCreate"
+
Thread.currentThread().getId());
}
public
void
doAsyncTask(View
view){
new
InnerAsyncTask().execute("");
}
private
class
InnerAsyncTask
extends
AsyncTask<String,Integer,
Bitmap>{
@Override
protected
Bitmap
doInBackground(String...
params)
{
try
{
Thread.sleep(3000);
}
catch
(InterruptedException
e)
{
//
TODO
Auto-generated
catch
block
e.printStackTrace();
}
return
BitmapFactory.decodeResource(getResources(),
R.drawable.abc);
}
@Override
protected
void
onPostExecute(Bitmap
result)
{
image.setImageBitmap(result);
}
}
}
AsyncTask更新進(jìn)度
<RelativeLayout
xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:id="@+id/tv_pb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="100%"
android:visibility="gone"
android:textSize="16sp"/>
<Button
android:id="@+id/btn_update"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="104dp"
android:onClick="doAsyncTask"
android:text="開始"
/>
<ImageView
android:id="@+id/iv_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btn_update"
android:layout_centerHorizontal="true"
android:layout_marginTop="22dp"
android:src="@drawable/abs"
/>
<ProgressBar
android:id="@+id/pb_progress"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:max="100"
android:visibility="gone"
android:layout_alignRight="@+id/btn_update"
android:layout_marginTop="32dp"
/>
</RelativeLayout>LoadImage:public
class
LoadImage
extends
AsyncTask<String,
Integer,
Object>
{
private
Context
context;
private
ImageView
imageview;
private
Bitmap
image;
private
Button
button;
private
ProgressBar
pg;
private
TextView
tv;
public
LoadImage(Context
context,
Button
button,
ImageView
imageview,
ProgressBar
pg,
TextView
tv)
{
this.context
=
context;
this.imageview
=
imageview;
this.button
=
button;
this.pg
=
pg;
this.tv
=
tv;
}
@Override
protected
Object
doInBackground(String...
params)
{
for
(int
i
=
0;
i
<=
100;
i++)
{
publishProgress(i);
try
{
Thread.sleep(50);
}
catch
(InterruptedException
e)
{
//
TODO
Auto-generated
catch
block
e.printStackTrace();
}
}
image
=
BitmapFactory.decodeResource(context.getResources(),
R.drawable.abc);
return
null;
}
@Override
protected
void
onProgressUpdate(Integer...
values)
{
//
TODO
Auto-generated
method
stub
pg.setProgress(values[0]);
tv.setText(values[0]
+
"%");
}
@Override
protected
void
onPostExecute(Object
result)
{
imageview.setImageBitmap(image);
button.setEnabled(true);
pg.setVisibility(View.GONE);
tv.setVisibility(View.GONE);
}
}MainActivity:
public
class
MainActivity
extends
Activity
{
private
ImageView
image;
private
Button
button;
private
ProgressBar
pg;
private
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共設(shè)施管理與維護(hù)操作手冊(標(biāo)準(zhǔn)版)
- 車站人員考勤管理制度
- 財(cái)務(wù)管理制度
- 辦公室員工培訓(xùn)課程更新制度
- 辦公室出差與報(bào)銷管理制度
- 2026年錫山城發(fā)集團(tuán)公開招聘5人備考題庫及完整答案詳解1套
- 人教版初中語文七下《駱駝祥子》基礎(chǔ)復(fù)習(xí)必刷題(附答案)
- 2026年葫蘆島市南票區(qū)政府專職消防隊(duì)員招聘37人備考題庫及參考答案詳解一套
- 關(guān)于選聘“警民聯(lián)調(diào)”室專職人民調(diào)解員20人的備考題庫參考答案詳解
- 2026年靈臺縣人民法院招聘備考題庫有答案詳解
- 宮內(nèi)節(jié)育器放置術(shù)
- 新制定《無障礙環(huán)境建設(shè)法》主題PPT
- 外墻涂料安全交底
- 期末復(fù)習(xí)主題班會
- 腫瘤病人的護(hù)理論文
- 道路交通基礎(chǔ)設(shè)施韌性提升
- 鋼結(jié)構(gòu)噴砂防腐施工方案
- 涪江上游水資源水環(huán)境調(diào)查評價
- 重慶市地圖ppt模板
- 室內(nèi)新增鋼樓梯施工方案
- TSG R7004-2013 壓力容器監(jiān)督檢驗(yàn)規(guī)則
評論
0/150
提交評論