タグ

ブックマーク / tondol.hatenablog.jp (2)

  • AndroidアプリでContextを持ち回したい話 - FLYING

    2012-06-16T04:04:00+09:00:コンストラクタでstaticフィールドを初期化するよりも,onCreateで初期化した方がいいかもしれない。 今まではSingletonなAppクラスを作って,MainActivityのonCreateでApplicationContextをAppのフィールドに代入,Appのインスタンスを通じて各クラスから参照する……という方法でApplicationContextを持ち回していたのだけど,これだと場合によってはAppが持っているフィールドが破棄されて,NullPointerExceptionを引き起こす可能性があることがわかった(アプリのライフサイクルとプロセスのライフサイクルが一致しないため?)。 つい最近になってandroid.app.Applicationというクラスの存在を知ったので,次のようにしてApplicationのインス

    AndroidアプリでContextを持ち回したい話 - FLYING
    yuiseki
    yuiseki 2016/02/24
  • Android開発の落とし穴 - FLYING

    昨日のエントリーに引き続き,バッドノウハウ的なものを箇条書きでまとめておく。思い付いた順に追加していく予定。 Activity関連 永続化はonPauseで行う*1。詳しくはActivityのライフサイクル図を参照のこと。 onPauseと対になっている処理は,onResumeで行うこと。onStart/onStopはあんまり使わない,気がする。 DialogはAlertDialog.Builderを使って実装するのが楽。ただし,裏で何らかの処理を行なっている間,ユーザーに操作をさせないために表示するダイアログ(いわゆるProgressDialog)は使わないようにする。DialogではなくActivityを新しく作って表示させることで,いくつかのトラブルを回避できる*2 *3。 重いタスクはUIスレッドで処理しない。AsyncTaskなどを使ってワーカースレッドで実行する。ただし,ワーカ

    Android開発の落とし穴 - FLYING
  • 1