This Handler class should be static or leaks might occur というエラーの解決方法
たとえば
protected Handler addressUpdatePostHandler = new Handler() {
public void handleMessage(Message msg) {
// ハンドラーの中でやること
}
};
このようにハンドラーを作ると、上記のエラーになります。
じゃー staticにすればいいんだね!
とstaticにすると、そもそもハンドラーでやりたかった動的ないろんなことができなくなって不便になりますよね。(雑な説明ですみません。)
なんでこれがまずいかというと、こちらのサイトさんに詳しいです。
http://glayash.blogspot.jp/2012/08/handleleak.html
解決策はStack Overflowの下記のページにあるような感じです。
http://stackoverflow.com/questions/11407943/this-handler-class-should-be-static-or-leaks-might-occur-incominghandler
簡単な方法は、Handler.Callbackを利用することです。
上記のコードを下記のように変更します。
protected Handler addressUpdatePostHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
//ハンドラーでやること
return true;
}
});
これでは問題が解決しないこともあると書かれていますが、個人的な経験ではこれでほぼ直っているようです。
