タグ

AndroidとAsyncTaskに関するpatorashのブックマーク (12)

  • コジオニルク - Android - AsyncTaskLoader

    Loaderを使用する意図 今まで、HTTP通信などの時間がかかる処理を行う場合はAsyncTaskを用いて非同期処理を行い、SQLiteデータベースとのやり取りを行う場合はCursorを用いてstartManagingCursor()で Activityのライフサイクルに依存させるのが定番の実装であった。 が、AsyncTaskの場合はUIスレッドで行う処理を記述するonPreExecute()やonPostExecute()の実装がどうしてもActivityに依存してしまう為、 各Activityのインナークラスとして定義せざるを得なかった。その為、筆者は「元となる共通化されたAsyncTaskを定義し、それをextendsしたものを各Activity内でインナークラスとして定義する」 といったような実装をしていた。こうすると、各Activity内ではonPreExecute()とon

  • Android バックグラウンドで Bitmap を処理する

    Processing Bitmaps Off the UI Thread の内容に補足を付けて解説してます。 前回のエントリーで大きい画像を効果的に読む込む方法を解説しましたが、デコードするデータがディスクやネットワークにある場合、BitmapFactory の decode* メソッドは UI スレッドで行ってはいけません(というかメモリ上以外のデータを読み込む場合は全部だめ)。 これらの処理はディスクやネットワークのスピード、画像のサイズ、CPUのパワーなどさまざまな要因で完了までの時間が変わり、いつ完了するのかわかりません。 もし画像のデコード処理で UI スレッドをブロックしてしまうと、最悪 ANR が発生します。 そこで、AsyncTask を使ってバックグランドで Bitmap を読み込むようにします。 ■ AsyncTask を使う 特に何も考えないで作ると、きっとこんな感じ

  • 時代は AsyncTask より AsyncTaskLoader

    時代は AsyncTask より AsyncTaskLoader Android 4.0、通称 Ice Cream sandwich というスマートフォンもタブレット端末もカバーする新しい OS がもうすぐデビューするとかいう時期なので、Android プログラミングもそれの普及をにらんだ実装に切り替えていくべき。 まずは、きっと Activity 上での非同期処理に多用されているであろう AsyncTask を、Android 3.0 以降で追加された AsyncTaskLoader へ乗り換えるところから始めるのもいいんじゃないかと思ってちょっと書いてみます。 あ、これは Activity での非同期処理について、という前提での内容になりますので、たとえば Service の中で非同期処理したい場合はどうすれば的な質問には役に立たないと思います。 いくら 4.0 がリリースされたとはい

    時代は AsyncTask より AsyncTaskLoader
  • mokkouyouの開発日記 ProgressDialogとAsyncTaskの(おそらく)正しい使い方

    プログレスダイアログの使い方として、 よく、以下の様な紹介がされています。 ・・・が、これには実は問題が隠されています。 結論だけ先に言ってしまえば、 「表示中に画面を回転させるとエラーが発生する可能性がある」 です。 その2も追加しました public class AsyncDemo extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); new DemoAsync().execute(); } class DemoAsync extends AsyncTask<Void, Void, Void> { private ProgressDialog mDia

    patorash
    patorash 2011/07/12
    回転対策しているんだけど出る。参考にしてみる。
  • Good night, Posterous

    Posterous Spaces is no longer available Thanks to all of my @posterous peeps. Y'all made this a crazy ride and it was an honor and pleasure working with all of y'all. Thanks to all of the users. Thanks to the academy. Nobody will read this.

    patorash
    patorash 2011/06/25
    AsyncTaskのキャンセルを呼んだときの動きについて
  • Android RejectedExecutionException « BPS株式会社 開発ブログ Beyond Perspective Solutions LTD.

    patorash
    patorash 2011/04/28
    AsyncTaskがたまりすぎると発生する。
  • Afternooncafe

    在宅勤務が多くなり,マウスを持つ手の手首が痛むようになってしまいました.会社と比べると机が狭いので,手首に負担がかかってしまったのかも知れません.どうしようか考えましたが,机が大きくなることはないですし,手首に負担が少ないとの話のバーチカルマウスを確かめてみました.結果としては良好.手首の痛みは無くなりました. バーチカルマウスは手首を立てた状態で持つ事になります.違和感があるかな?と思いましたが,すぐに慣れてしまいました.結構おおきなマウスなので,手が小さい人は持ちにくいのかも知れませんが,大きめの私にはしっくりきました.持った感じも素直で,今までなぜこの持ち方ではなかったんだろう?という気がするぐらいです.意外だったのは,会社では普通のマウスを使っているのですが,何の問題もなく使えていることでしょうか.こっちのマウスに慣れたら,これしか使えなくなるのかと思っていましたが問題なかったです

    patorash
    patorash 2010/11/25
    AsyncTask中にバックボタンを押された場合はsetOnCancelListenerを実装すること。
  • throw Life - 初めてのAndroid -第7章 世界との接続-

    Androidとは何かからはじまり、音をならしたりOpenGLを使ってみたり「数独」アプリを作ってみたりと、幅広いです。 幅広いと複雑になりがちですが、サンプルが非常にシンプルな形に纏められているので、とても分かりやすくなっています。 これに先立ち、2009年5月11日(月)に開催される日Androidの会の月例イベントで先行即売会が行われます。 特典として購入者全員にGoodies君デザインのTシャツがもらえるそうです。

  • 日々精進(しねえなあ。。。): AsyncTask備忘録

    2010年2月14日日曜日 AsyncTask備忘録 今回の実装はミスもあったけどAsyncTaskの挙動を調べるには絶好のタイミングでした。 以前作成していたblogSKEでは連続実行を基としていたため、その挙動が追いにくく放置でしたが 今回は定期的に一だったため丁寧に挙動を追うことができました。 まず、基として1.x系と2.x系はエミュレータで見る限り以下の違いがあります。 ・1.x系 必ず一つだけ起動する。ただし違うクラスの場合は複数作られ前のタスクが終了するまで待機 ・2.x系 どのクラスであろうと最大5つまで起動し、順次ステートを変更しながら動作する どちらもひとつのスレッド上から作成されたAsyncTaskは一度に1つしか動作しません。 これはマニュアル通りです。 そして通常のアプリケーションならば終了と同時に全てのAsyncTaskが破棄されるはずです。 が、今回はいろ

  • AsyncTaskの同期処理について - 日本Androidの会 | Google Groups

    Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message ListViewに画像をHTTPから取得して表示するという事をしています。 画像を読み込んでImageViewに設定する処理をAsyncTaskに書いて実行しているのですが、 どうもこれが同時に走ると場合によってはメモリー不足で落ちる事がわかりました。 AsyncTaskを同時に走らせない(順番に1つずつ)ようにしたいのですが、なにかいい手はありますでしょうか。 普通のJavaでいうsynchronizedみたいなのがあればいいんですが…。よろしくお願いいたします。

  • Developer Blog 〜開発メモ書き系〜:AndroidでAsyncTaskを使ったバックグラウンド処理

    初めて使う場合にはけっこう悩んだのでメモ書きとして残しておきます。 重たいバックグラウンド処理からUIスレッドに値を渡すには、UIスレッドとバックグラウンドスレッドで応答することが必要になります。 この例ではandroid.os.Handlerを使って値を渡しています。 /** * バックグラウンド処理の動作確認用のActivityです。 * AsyncTaskとProgressDialogを使って実現しています。 * * @author */ public class BackgroundActivity extends Activity { /** カウント数 */ private EditText editTextCount = null; /** 開始ボタンリスナー */ private View.OnClickListener buttonStartLitener = new V

  • AsyncTaskでユーザビリティを向上させる | Techfirm Android Lab

    こんにちは。daichi1128です。 前回はHTTP通信をしてTwitterのタイムラインを取得、表示しました。 AndroidTwitterのタイムラインを取得する【XmlPullParser】 | Techfirm Android Lab ですが、前回までではユーザのアイコンは動的に表示しておらず、決め打ちで出しているだけでした。それではあまり意味がないので、今回は画像取得部分をやることにします。 ただし、メインスレッド上で画像取得をしてしまうと、取得中はユーザからの操作を全く受け付けない、使い勝手の悪いインターフェースになってしまいます。 そこで、ユーザ操作を受けつけつつ、画像を取得するために、別スレッドで処理を行います。 アプリケーションのユーザビリティを向上させるためには、この非同期処理は必須といえます。今回でマスターしてしまいましょう。 さらに、ついでなので無駄なネット

  • 1