androidでマルチスレッド(バックグランド処理) その2では、前回の2番のAsyncTaskクラスを使った方法を説明します。
スレッドの代わりにAsyncTaskクラスのサブクラスを作成し、onPreExecute()、doInBackground()、onPostExecute()をオーバーライドして、処理を記述します。
�onPreExecute : 前処理
�doInBackground : バックグラウンドで動かす処理
�onPostExecute : 終了時の処理
AsyncTaskのサブクラス化する際にAsyncTask‹Param, Progress, Result›という形で、doInBackground()の引数、進捗具合を表すパラメータ、doInBackground()の戻り値(=onPostExecuteの引数)をテンプレート引数に渡すようになっています。
完全なコードです。
1 | package com.team_hiroq.sample; |
3 | import android.app.Activity; |
4 | import android.os.AsyncTask; |
5 | import android.os.Bundle; |
6 | import android.view.View; |
7 | import android.view.View.OnClickListener; |
8 | import android.widget.TextView; |
10 | public class ThreadSample2 extends Activity implements OnClickListener{ |
14 | public void onCreate(Bundle savedInstanceState) { |
15 | super .onCreate(savedInstanceState); |
16 | setContentView(R.layout.theadsample1); |
19 | mTextView = (TextView)findViewById(R.id.ThreadSample1); |
21 | findViewById(R.id.ThreadSample1).setOnClickListener( this ); |
25 | public void onClick(View arg0) { |
27 | new AsyncAppTask().execute(); |
30 | class AsyncAppTask extends AsyncTask<Void, Void, String>{ |
32 | protected void onPreExecute() { |
37 | protected String doInBackground(Void... arg0) { |
39 | return "Thread Samples" ; |
42 | protected void onPostExecute(String result) { |
46 | mTextView.setText(result); |
以上です。
0 件のコメント:
コメントを投稿