【Android日誌】2016_01_25週:どこまでnullチェックすればいいのか他

shouldOverrideUrlLoading()はpostだと呼ばれないよ

webViewのページ読み込み時にURLを割り込みできる関数だが、

/**
     * Give the host application a chance to take over the control when a new
     * url is about to be loaded in the current WebView. If WebViewClient is not
     * provided, by default WebView will ask Activity Manager to choose the
     * proper handler for the url. If WebViewClient is provided, return true
     * means the host application handles the url, while return false means the
     * current WebView handles the url.
     * This method is not called for requests using the POST "method".
     *
     * @param view The WebView that is initiating the callback.
     * @param url The url to be loaded.
     * @return True if the host application wants to leave the current WebView
     *         and handle the url itself, otherwise return false.
     */

と書いてある通り、postだとこの関数は呼ばれない。

WebView form - POST をインターセプト-Oboe吹きプログラマの黙示録

じゃあどうするのかと、jsで埋め込んでなんとかする方法がちらほら…。 ここまで対応すべきかどうかどうかは不明。

どこまでnullチェックすればいいのか?

自分の中で、いまいちこのへんの感覚がわからなかったので、調査。 呼んでくるメソッドがnullを返さないことがわかっていれば、もちろんnullチェックをしなくていいけど、 onDestory()が呼ばれた後に通信のコールバックが返ってくる時とかは、nullになることがあるし…。 アプリを触りながらそういうところをチェックするのではなく、ソースの中でロジックで考えるように心がけようと思った。

d.hatena.ne.jp

webView読み込み途中でのクラッシュ

05:27:57.165    799-14680/? W/ActivityManager﹕ Process jp.co.hoge.hogeapp has crashed too many times: killing!
01-29 05:27:57.165    799-14680/? W/ActivityManager﹕ Force finishing activity hogehoge

webViewにてページの読込中の際に読み込み途中のページのボタンをタップすると落ちることはある。 RuntimeErrorではないからエラーログなどは取れない代わりにこのようなログアリ。

いくつもスレッドが走ることで落ちるものなのかな、と思いつつ根本的な解決が不明。

  • 読み込みが終わるまでwebViewをINVISIBLEにしておく

これで対応するしかないのかもしれない…。

www.swingingblue.net

www.swingingblue.net

Android Javaでフィールドにプレフィックスをつけるのはやめようの理由

今週話題になった記事について結局なんでこんなこと言ってるの?がわからなかった。

gfx.hatenablog.com

  • 昔のテキストエディタは精度が悪かったため、今みたいにメンバ変数に色とかつけてくれなかった
  • 昔のCの名残りなど
  • 今はIDEなどが発達してきて色などをつけてくれるから、プレフィックスが必要なくなったと考える

みたい!