fresh digitable

めんどくさかったなってことを振り返ったり振り返らなかったりするための記録

Html.fromHtml()はカジュアルに使うものではない?

拙作のツイッタークライアントが、起動して3時間ほど放置しておくと全く動かなくなってしまうようになった。どこか触るとANRが出て落とせるので、その都度traces.txtを見ると、いつもHtml.fromHtml()を呼んでるところで止まっている様子。

内部ではパーサーオブジェクトのイニシャライズでnew char[2000]をやっているところだった。

Cross Reference: /external/tagsoup/src/org/ccil/cowan/tagsoup/Parser.java

名前やコメントから察するにこの配列はHTMLのコメント部分を読み込む時に使うバッファのようなのだが、メンバ名で検索しても宣言の箇所しかヒットしない。可視性がprivateなのでなんのためにあるのかわからなかった。

traceviewで見ると処理時間も結構かかるようだし、せいぜい1行のTextViewに使うには大げさなのかなと思ってなるべく呼ばないようにする工夫を入れた。固まってしまう原因はまだよくわからないので経過を見守ることにする。

(これはAndroid 6.0で確認した)