【android】非同期処理
公開日:
:
最終更新日:2012/05/07
android
Androidで非同期処理、マルチスレッドを処理するスニペット。
AndroidのスレッドはUIスレッドとそれ以外で大別され、UIスレッド以外のスレッドからUIスレッドを操作することはできません。
重い処理を別スレッドで行なって、結果をUIに反映させるにはAsynkTaskやメッセージで処理を行います。
AsynkTaskを使う方法1:クラスを定義
private void test(){ new newTask().execute(new String[]{"param1","param2"}); } //(AsyncTask<doInBackgroundの引数,onProgressUpdateの引数,doInBackgroundの返り値>) protected class newTask extends AsyncTask<String, Object, Boolean>{ @Override protected void onPreExecute() { //前処理 super.onPreExecute(); Log.v(TAG, "onPreExcecute()"); } @Override protected Boolean doInBackground(final String... arg0) { //バックグラウンド処理 onProgressUpdate(new Object()); return true; } @Override protected void onProgressUpdate(Object... Object) { //進捗処理 } @Override protected void onPostExecute(Boolean flag){ //後処理 } }
AsynkTaskを使う方法2:匿名クラスで実行
new AsyncTask<String, Object, Boolean>(){ @Override protected void onPreExecute() { //前処理 super.onPreExecute(); } @Override protected Boolean doInBackground(String... params){ //バックグラウンド処理 return new Boolean(true); } @Override protected void onPostExecute(Boolean flag){ //後処理 } }.execute();
単純にバックグラウンドで処理する場合Theadを使いかます
new Thread(new Runnable() { public void run() { //バックグラウンド処理 //スリープする場合 Thread.sleep(600);// } }).start();
関連記事
-
-
【android】言語・地域設定の取得
androidでは利用する言語と国名がjava.util.Localeのオブジェクトとして設定されて
-
-
【android】Activityとプロセスのライフサイクル
またもやライフサイクル周りでハマったのですが、Androidのライフサイクルは複雑で困ります。 G
-
-
【android】ホーム画面や他のアプリの前面にViewを表示する。
WindowManagerのTYPE_SYSTEM_ALERTのレイヤーにViewを表示することで、
-
-
【android】リソースからいろいろ取得する
リソースで定義したいろいろをコード内で呼び出す方法です。 レイアウト //リソースからレ
-
-
【android】設定画面の作成
res/xml/preferences.xml <?xml version=&quo
-
-
【android】DrawableとBitmap、リソースの相互変換
Resource → Bitmap Bitmap bm = BitmapFactory.dec
-
-
【android】リスト項目のmatch_parentが効かない
下記のようなリスト項目用のレイアウトを用意して、リストの右端にチェックボックスを置くようにしたのです
-
-
【android】スリープモードに入らせない
Androidでは一定時間、操作をしないとスリープモードに入って待機状態になってしまいますが、動
-
-
【android】アプリのバージョン情報を取得する
int versionCode = -1; String versionName = &quo
-
-
[android] JSONのパースにかかる時間
リストデータなんかを保存したいというのはよくある要件だと思います。 DBは面倒だしカラム毎に集計す
- PREV
- 【android】ハードウェアキー入力を検出する
- NEXT
- 【android】言語・地域設定の取得