要继承异步任务类需填写三个参数,如下:
class UpdateText extends AsyncTask<String,Integer,String>
这三个参数分别是 :params、progress 、result
params: execute和doInBackground中传入的参数
progress:publishProgress和onProgressUpdate中的参数
result:doInBackground的返回值 和onPostExecute传入的参数
AsyncTask中方法的执行顺序是:
onPreExecute(主线程)--> doInBackground(后台线程) --> onProgressUpdate(主线程,更新progress)--> onPostExecute(主线程)
不说了,贴上代码:
package com.example.xiao8.myapplication; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new UpdateText().execute("start"); } class UpdateText extends AsyncTask<String,Integer,String>{ public UpdateText() { } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected String doInBackground(String... params) { Log.d("tag","======doInBackground======"+params[0]); Integer i = 3; publishProgress(i); return "end"; } @Override protected void onPostExecute(String s) { Log.d("tag","======onPostExecute======"+s); super.onPostExecute(s); } @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); Log.d("tag", "======onProgressUpdate======" + values[0]); } } }