2.DataLoadTaskクラス … メソッド

Android開発に関するメモランダム

カテゴリー: 日記アプリ  閲覧数:522 配信日:2013-11-07 20:30


onPreExecute()


タスク開始直後に呼ばれる
・何か初期化したいことがあればここへ記述
・ここではプログレスダイアログを初期化して表示
	// タスク開始直後に呼ばれる
// 何か初期化したいことがあればここへ記述
// ここではプログレスダイアログを初期化して表示
@Override
protected void onPreExecute() {
// 処理中ダイアログ表示
progressDialog = new ProgressDialog(ActivityTop.this);
progressDialog.setMessage(getResources().getText(R.string.loading));
progressDialog.setIndeterminate(true);
progressDialog.show();
}



doInBackground()


バックグラウンドで実行させたい処理
・インナークラス内にて、「RecordDaoItemクラスのインスタンスオブジェクト」を生成し、その際引数として「DataLoadTaskクラスのインスタンスオブジェクト」を渡す
		//バックグラウンドで実行させたい処理
@Override
protected List<RecordItem> doInBackground(Object... params) {
           // 一覧を呼び出し
RecordDaoItem dao = new RecordDaoItem(ActivityTop.this);


インナークラスは、「.」でつないで表記
・ActivityTopクラスの中に新しくDataLoadTaskクラスを定義しているため、DataLoadTaskはActivityTopクラスのインナークラス
・そのため、DataLoadTaskクラスは、ActivityTop.DataLoadTask と「.」でつないで表記

「引数の数」はクラスに依存
・最後の行は、自分自身をパラメータとして「クラス名」のオブジェクトを生成しているため、「引数の数」はそのクラスによる
・具体的には、RecordDaoItemに依存
・下記コンストラクタにより、「引数の数」は1
/**
* データアクセスクラス
*/
public class RecordDaoItem {

private DatabaseOpenHelperItem helper = null;

public RecordDaoItem(Context context) {

※引数リストの一般的な形式 … 型 変数1, 型 変数2,

このときのActivityTop.thisとは?
・「ActivityTop.DataLoadTaskクラス」のオブジェクト自身を意味する
・オブジェクト自身とは、例えば「tmp = new ActivityTop.DataLoadTask();」とした場合は tmp に該当
・ここでは「ActivityTop」クラスのインナークラス「DataLoadTask」にて「RecordDaoItem dao = new RecordDaoItem(ActivityTop.this);」しているので、「DataLoadTask」クラスのインスタンスオベジェクトとなる

「ActivityTop.this」ではなく、単なる「this」だと、どうなる?
エラー発生
コンストラクター RecordDaoItem(ActivityTop.DataLoadTask) は未定義です
・DataLoadTaskの中では、thisはクラスオブジェクト自身を指す
・一方、「new RecordDaoItem」引数には、「Context context」つまり Activityを継承したActivityTopクラスのオブジェクトを指定する必要がある
・つまり、インナークラス内から「外部クラスのthis」を参照したい
・そのためには、「外部クラス名 + .this」と表記することが絶対条件となる
※DataLoadTaskクラスは、外側のActivityTopクラスのインスタンスに内側からアクセスしている

RecordDaoItemクラス呼出
import android.style.systemdb.RecordItem;
import android.style.systemdb.RecordDaoItem;

// 一覧データの取得と表示を行うタスク
public class DataLoadTask extends AsyncTask<Object, Integer, List<RecordItem>> {

private ProgressDialog progressDialog = null;

// バックグラウンドで実行させたい処理
@Override
protected List<RecordItem> doInBackground(Object... params) {
           // 一覧を呼び出し
RecordDaoItem dao = new RecordDaoItem(ActivityTop.this);


週間人気ページランキング / 2-16 → 2-22
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2025/2/23 1:01 更新
指定期間人気ページランキング / 1970-1-1 → 2025-2-22
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2025/2/23 1:01 更新