読者です 読者をやめる 読者になる 読者になる

15 min/d

ぼうずやのにっき

Android HttpURLConnection とか

bouzuya/bbna をつくっている。いまは通信処理を書いている。よく分からないままに書いている。

Java は同期的に通信ができるので……いや、さすがにメインスレッドで通信処理もまずい。非同期処理だ。 Loader というコンポーネントを使う。Loader の一種である AsyncTaskLoader を使う。

Loader は Support Package の LoaderManager 経由で使っている。Loader がひとつしかないのに LoaderManager が要るのか分からないけど、再利用がどうとか書いてあるのでうまく管理してくれるのだろう。結果を受け取るために MainActivityLoaderManager.LoaderCallbacks を実装する。うーん。

AsyncTaskLoaderloadInBackground では HttpURLConnection を使って通信処理を書く。昔は HttpClient がどうのこうのという記述を見かけるが、6.0 で削除されたらしい ので、 HttpURLConnection を使う。サードパーティにもっと便利なのもありそうだけど、とりあえず標準で。

InputStream って懐かしいな。そして面倒くさいな。InputStreamInputStreamReader で wrap して BufferedReader で wrap して……。ああ面倒くさい。検査例外。 IOException 。面倒くさい。Log.e() で吐きつつ、とりあえずは無視。 Stringnull が含まれている……、うーん。……いま書いていて、そういえば、もう Maybe 相当の class がある気がしてきた……。気にせず @Nullable@NonNull をつけつつ進める。この annotation に意味があるのか……。

明日は JSON を parse する感じかな……。


そういえば、『スーパーマリオ ラン』のスペシャルコースを除いてすべてのカラーコインを集めた。カラーコインはピンクコイン・パープルコイン・ブラックコイン。1 コース 3 カラーコイン、 1 ワールド 4 コース、6 ワールド 24 コース 72 カラーコイン。最後はワールド 4-1 ガリガリタワーのブラックコインだった。 2 枚目の P スイッチは二個目のブロックを飛び越えて反対側に行けば良かった。1 枚目と同様に時間的にギリギリなので厳しい。 5 枚目も難しいが、シャボンを十分集めていれば何回か挑戦できるので、それほどでもなかった。