タグ

解説とhandlerに関するKouJustinのブックマーク (2)

  • Handlerのリーク警告を解決するには - outcesticide

    たとえば、こんなコードを書いたとする。 「Handlerはstaticにしないとリークするよ!」と注意される。 This Handler class should be static or leaks might occur 解決 (a) static内部クラスにする 単純にstatic内部クラスに置き換えることができるのならば、手っ取り早く解決できる。 でも、static内部クラスにすると、staticメソッドしか使えない。 Activityのインスタンスを持っておくと、非staticメソッドも使えるようになる。 ただし、GCが回収できるようにActivityへのWeakReferenceにすること。 Activityが終了してGC回収済みの場合に備えてnullチェックしておく。 参考 http://stackoverflow.com/questions/11407943/this-ha

    Handlerのリーク警告を解決するには - outcesticide
  • HandlerとMessage - 別スレッドでのGUI操作 - 愚鈍人

    ProgressDialogのサンプルプログラムをながめていたら、Handlerという見なれぬクラスが使われていた。 Handlerクラスて何だろう、と思って調べてみたらすっかりはまってしまった。 他の記事もそうなのだが、今回は特にサンプルコードをもとに推察で書いている部分が多いので、誤りがあればご容赦いただきたい。 動作確認は、きちんとしているつもりであるが。 別スレッドでのGUI操作の問題点 アンドロイドでも、通常のjavaプログラムのようにThreadクラスが使える。 しかし、アンドロイドのGUIはシングルスレッドにしか対応していないため、 ウィジェット等のGUIオブジェクトを生成したスレッドとは別のスレッドから、ウィジェットに直接アクセスする事はできない。 まず次のプログラムを実行して、別スレッドから直接ウィジェットの操作を試みてみる。 このプログラムを実行してボタンを押すと、新し

    HandlerとMessage - 別スレッドでのGUI操作 - 愚鈍人
  • 1