*

【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();

関連記事

no image

【android】サービスの実装

ダウンロードなどActivityに依存したくない大きなバックグラウンド処理や常駐プロセスを作りたい場

記事を読む

no image

【android】設定画面の作成

res/xml/preferences.xml <?xml version=&quo

記事を読む

no image

【android】スリープモードに入らせない

Androidでは一定時間、操作をしないとスリープモードに入って待機状態になってしまいますが、動

記事を読む

no image

【android】リソースからいろいろ取得する

リソースで定義したいろいろをコード内で呼び出す方法です。 レイアウト //リソースからレ

記事を読む

no image

【android】Activityとプロセスのライフサイクル

またもやライフサイクル周りでハマったのですが、Androidのライフサイクルは複雑で困ります。 G

記事を読む

no image

【android】 Android4.1のserviceでdefaultPreferenceがおかしい

【現象】 ActivityでdefaultPreferencesで保存したデータがservice内

記事を読む

no image

【android】リスト項目のmatch_parentが効かない

下記のようなリスト項目用のレイアウトを用意して、リストの右端にチェックボックスを置くようにしたのです

記事を読む

no image

【android】アプリのバージョン情報を取得する

int versionCode = -1; String versionName = &quo

記事を読む

no image

【android】ホーム画面や他のアプリの前面にViewを表示する。

WindowManagerのTYPE_SYSTEM_ALERTのレイヤーにViewを表示することで、

記事を読む

no image

[android] JSONのパースにかかる時間

リストデータなんかを保存したいというのはよくある要件だと思います。 DBは面倒だしカラム毎に集計す

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

no image
知らないと損をする6つのライセンスまとめ

オープンソースやフリーウェア、フリー素材などが巷に溢れ、それらを利用す

no image
ガリレオ:ニュースブラウザをリリースしました。

概要 ガリレオはニュースを読んだり、検索する機能に特化したブラウザア

no image
【android】Activityとプロセスのライフサイクル

またもやライフサイクル周りでハマったのですが、Androidのライフサ

→もっと見る

PAGE TOP ↑