Log in



非同期(バックグラウンド)処理

Tuesday, February 12th, 2013 by

androidで非同期処理(バックグラウンド処理)を行う場合、いくつか方法がありますが、今回はAsyncTaskを使った方法を紹介します。
まず、AsyncTaskを継承したクラスを作成します。ここではMyAsyncTaskとしています。

class MyAsyncTask extends AsyncTask<Integer,Void,Void>{
        @Override
        protected Void doInBackground(Integer... params) {
            sample(params[0]);
            return null;
        }
}

doInBackgroundに記述した部分が実際に非同期で処理されることになります。例ではsample(int)を実行しています。
今回は引数としてInteger型を一つ指定していますが、必要がない場合は三つともVoidで問題ありません。
また、通常バックグラウンド処理ではUIにアクセスはできませんが、AsyncTaskでは可能なので「メイン画面を止めずに、かつUIに関わる処理を行いたい」といった場合に有効です。
作成したクラスを実行する時は、以下のように記述します。

new MyAsyncTask().execute(i);

引数を指定するのはMyAsyncTaskではなくexecuteなので、注意してください。

Leave a Reply