最終更新: moonlight_aska 2011年05月28日(土) 09:32:27履歴
時間のかかる処理をメインスレッドで実行すると, その処理が完了するまでUIの操作などができなくなる.
このような場合には, 時間のかかる処理を別スレッドで動作させるのが望ましい.
スレッドを生成するには, スレッド(Thread)を使う.
このような場合には, 時間のかかる処理を別スレッドで動作させるのが望ましい.
スレッドを生成するには, スレッド(Thread)を使う.
- Threadクラスのインスタンスに, スレッドで処理するコードを記述したRunnableクラスを指定する.
- Thread.startメソッドで, スレッドを起動する.
package com.moonlight_aska.android.thread01;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class Thread01 extends Activity {
private Button btn;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button)findViewById(R.id.button_id);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
loadFile(); // 時間のかかる処理
}
}).start();
}
});
}
private void loadFile() {
// ファイル読み込み処理の代わりに, sleepを実行
try {
Thread.sleep(10000);
} catch (InterruptedException ie) {
Log.v("loadFile", "error");
}
}
}
コメントをかく