スレッド勉強中-2
マルチスレッドは2種類ある。
・Threadタイプ(Java標準)
・AsyncTaskタイプ(Androidで提供)
Threadタイプの記述例
・HandlerクラスのインスタンスをしてHandler.postでRunnable()のrun()の中で画面関連の処理を記述する。
package com.ドメイン.sample;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
public class ThreadSample extends Activity implements OnClickListener{
Handler mHandler = new Handler(); //Handlerのインスタンス生成
TextView mTextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.theadsample1);
//TextView取得してmTextViewに格納する
mTextView = (TextView)findViewById(R.id.ThreadSample1);
//TextViewタップ時にonClick実行
findViewById(R.id.ThreadSample1).setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
// スレッド起動
(new Thread(new Runnable() {
@Override
public void run() {
// 通常バックグランドをここに記述します
.....
/**
* Handlerのpostメソッドを使ってUIスレッドに処理をdispatchします
*/
mHandler.post(new Runnable() {
@Override
public void run() {
//取得したイメージをImageViewに設定
mTextView.setText("Thread Samples");
}
});
}
})).start();
}
}
サンプル参照< androidでマルチスレッド(バックグランド処理) その1 – Android | team-hiroq >