Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android開発の罠と、その避け方

 Android開発の罠と、その避け方

nakawai

April 23, 2017
Tweet

More Decks by nakawai

Other Decks in Programming

Transcript

  1. Android開発の
    ワナと、その避け方
    @nakawai
    2017/4/23
    かものはし

    View Slide

  2. 開発中の
    ある日

    View Slide

  3. 原因を探ると
    Activity/Fragmentのメンバ変数
    mHogeが、なぜかnull
    再現不可

    View Slide

  4. やりがち
    if(mHoge != null){...}

    View Slide

  5. 根本的な
    原因は?
    なぜnullに?

    View Slide

  6. 答え:
    再生成

    View Slide

  7. Androidのメモリ管理
    メモリが足りない

    backgroundのアプリを、いったん破棄

    必要なときに再生成

    View Slide

  8. ルールを
    知らないと、
    状態が
    復元されない

    View Slide

  9. nullの理由
    所定の手続きを
    経ていなかった

    View Slide

  10. 主要コンポーネントの
    ライフサイクルを把握すれば
    回避可能
    ● #onSavedInstanceState()
    ● Fragment#setArguments()
    ● Parcelable

    View Slide

  11. テスト
    「常にActivityを破棄」をON

    View Slide

  12. 微妙な点
    コールバック記述が
    冗長になる
    ダイアログなど

    View Slide

  13. 「Android開発の罠と、その避け方」
    以上
    なにか質問あれば

    View Slide