ジャンル不定の日記です。

onCreateでgetLoaderManager()

前回バージョンアップ時に気づいた画面の向きが起動時と違う場合に非同期処理ができてなかった問題で、またブログエディターのバージョンアップしたんだが、
どうもonCreateでgetLoaderManager()を呼び出さないとそうなるらしい。
getLoaderManager()でLoaderManagerを取得するだけで、何も処理はしなくていいんだが、とにかくonCreate時にgetLoaderManager()をしなくてはいけない。
LoaderManagerを使う際は必要な箇所で何回もgetLoaderManager()していいんだが、それとは別にとにかくonCreate時にgetLoaderManager()。

ググったら正しい答えが結構出てきたんでハマりはしなかった。


あと、onLoadFinishedが複数回呼び出される場合があるので、それを前提に作らなければいけないという記事を見た。
initLoaderせずにrestartLoaderだけにしてればそんなことはない気がするんだが、
非同期処理で結果が返ってくる前にUI操作で別の処理が発生する可能性はあり、別の処理が発生したら前の処理は破棄したほうが良さそうではあるので、
それの対応も含めて、二重処理はキャンセルするようにした。


連日のバージョンアップで、初回を含めて5回アップしたが、
今の時点では問題は把握していないので、今回のバージョンで落ち着きそうかな。

更新Pingの送信機能なんかも当初はかんがえてたが、今は更新Pingの必要性薄れてるし、操作箇所を増やすとわかりにくくなるし要らないかなと・・・

他だと、記事内のHTMLタグを再編集する機能とかあると良いかなと思うが、
Android側でUIだして記事のrangeに適用するとなるとめんどくさいね。

今日もバージョンアップ

ブログエディターアプリ公開してから連日だが、今日もバージョンアップした。

前回のアップの後に、記事取得時にカテゴリーの取得すべきだがやってないのに気づいたので、それ修正して、
本文と追記の切り替えをメニューじゃなくてタブにしたいと思って変えたんだが、
タブでえらいハマった…

まずはAPIのタブ機能で実装しようとしたが、使い方がよくわかんなくて時間を費やしてたんだか、
端末横向き時に高さがきついから、横向き時はサイドに90度回転させたタブを置こうと思ってたんで、
API標準の機能じゃ無理そうだから、Button並べてタブ風にした。

だが、LinearLayoutで並べてマッチさせると回転してると縦横逆になっちゃうみたいで、普通にやってもダメだった。

最終的に、LinearLayoutの下にFrameLayoutを並べて、Frameの下に回転させない文字なしButtonと回転させたTextViewを重ねた。
回転させなければ親要素にマッチさせられる。
FrameLayout自体にClickイベントつけても良さそう。

あと、LinearLayout多用したが、AdMobを下に置くのに手前にmatch_parentがあると、
領域サイズ不十分で広告表示されなくなるみたいだね。

他に、WebViewが拡大した後にフォーカス取りづらいことが判明したのを修正したり、微調整。

というわけで、丸一日かかった。


だいぶ良い感じになったと思うが、
画面回転すると、起動時の向きじゃないと通信系の処理が反応しないバグが判明した…
調査して、すぐに解決できればいいが…