Androidのメンバ変数の管理について

2019年5月13日

よく初学者の方にありちなのですが変数のスコープを適切に考えられいないがために、

なんでもメンバ変数にしてしまうことがありますので注意してください。

 

口述しますが、メンバ変数を明示的にクリアしないと無駄なメモリを使い続けることになります。

これを防ぐために次項をご覧ください。

 

 

ActivityのonDestroy後について

AndroidのActivityはonDestroy後に、即座にシステム側に回収される訳ではありません。

システム側に回収されるタイミングはプロセスが終了したり、メモリ不足になった時です。

このことからも分かるようにonDestroy後にメンバ変数の参照が即座になくなるわけではありません。

従って当該Activityでしか使用しないメンバ変数は、onDestroyで明示的にクリアすることにより、

リソースを節減しましょう。

@Override
protected void onDestroy() {
    super.onDestroy();
    
    //メンバ変数を明示的にクリア
    mInputStream = null;
}