スポンサーリンク
Androidで読み物系のアプリの場合、String.xmlから文字列を大量に読み込むことがあるが、表示するまで時間がかかってしまうためAsyncTaskを使ったバッググラウンド処理にて表示を行う方法。
以下がバックグラウンド処理で文字列を表示するサンプルコード。
import android.content.Context; import android.os.AsyncTask; import android.widget.TextView; public class StringShutoku extends AsyncTask<String, Void, String> { private Context context; private TextView textview; public StringShutoku(TextView textview, Context context) { this.context = context; this.textview = textview; } public StringShutoku() { } @Override protected String doInBackground(String... params) { // バックグラウンド処理で文字列を読み込み String str = null; synchronized (context) { str = context.getString(R.string.test); } return str; } @Override protected void onPostExecute(String result) { // 取得した文字列をセット this.textview.setText(result)); } }
※ポイント
・クラスの第3引数は、doInBackgroundの戻り値と合わせる
・onPostExecuteの引数はdoInBackgroundの戻り値と同じ値
・doInBackground内のsynchronizedは、メモリ不足防止のため
呼び出す側は以下で
StringShutoku task = new StringShutoku(textview, getApplicationContext()); task.execute();
スポンサーリンク
スポンサーリンク