*

【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】複数のカスタムテーマを設定で切り替える

背景色やアプリ全体のテーマ色を設定で変更したいという要望をもらったので実装してみました。

記事を読む

no image

【android】言語・地域設定の取得

androidでは利用する言語と国名がjava.util.Localeのオブジェクトとして設定されて

記事を読む

no image

インテント

基本 //任意のアクティビティの起動 Intent intent = new

記事を読む

no image

【android】 webviewでassetsのリソースを使用する

webviewでassets内のリソースにアクセスするには file:///android_a

記事を読む

no image

【android】アニメーション

Viewにアニメーションを付加する方法です。 目次 アニメーションの実行 de

記事を読む

no image

【android】処理時間を計測する

パフォーマンスのリファクタリングを行うには処理時間の計測がかかせません。 SDK標準のクラスを使っ

記事を読む

no image

【android】任意のスレッドで処理を行う

非UIスレッドでUIを操作したい場合に、任意の処理をUIスレッド上で実行する。 目次

記事を読む

no image

【android】 setOnClickListener(false)が効かない

間違いその1 OnClickListenerが登録されているViewにsetClickable

記事を読む

no image

【android】標準の設定画面を作る

設定画面のテンプレートです。 検索一発クンのコードから抜粋しました。 チェックボックス、リス

記事を読む

no image

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

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

記事を読む

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 ↑