android 回調函數二:應用實例


前言:如果對android回調的概念不明白的請看:android 回調函數一:基本概念

1、定義接口

package com.app.util; public interface ZYJCallBack { public void dataResult( String resultString ) ; public void progress( Integer progress ) ; public void start() ; }


2、實體

package com.app.util; import android.os.AsyncTask; public class ZYJAsyncTask  extends AsyncTask< String , Integer , String > { ZYJCallBack zyjCallBack ; //開始
 @Override protected void onPreExecute() { super.onPreExecute(); zyjCallBack.start(); } /** * 特別注意:publishProgress( 10 ); * 這一句一定要寫,否則 onProgressUpdate() ,這個方法不會被回調 */ @Override protected String doInBackground(String... params) { publishProgress( 10 ); publishProgress( 20 ); publishProgress( 50 ); publishProgress( 100 ); return "哈哈哈,操作完成了" ; } //onProgressUpdate方法用於更新進度信息 
 @Override protected void onProgressUpdate(Integer... progresses) { zyjCallBack.progress( progresses[0] ); } @Override protected void onPostExecute(String result) { super.onPostExecute(result); zyjCallBack.dataResult( result ); } public void setCallBackListener(ZYJCallBack zyjCallBack){ this.zyjCallBack = zyjCallBack ; } }

 

3、回調

package com.android10; import com.app.util.ZYJAsyncTask; import com.app.util.ZYJCallBack; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView( R.layout.activity_main ); ZYJAsyncTask zyjAsyncTask = new ZYJAsyncTask() ; zyjAsyncTask.setCallBackListener( new ZYJCallBack() { @Override public void start() { System.out.println("ssss開始了" ) ; } @Override public void progress(Integer progress) { System.out.println("ssss進度為: " + progress ) ; } @Override public void dataResult(String resultString) { System.out.println("ssss結果是:" + resultString ) ; } }); zyjAsyncTask.execute( "" ) ; } }


4、運行結果

ssss開始了
ssss進度為: 10
ssss進度為: 20
ssss進度為: 50
ssss進度為: 100

ssss結果是:哈哈哈,操作完成了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM