2011-12-14

バーコードからtwitできるBARCOTTERをバージョンアップしました

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
バーコードを読み取って、本のタイトルなどを判別してtwitができるBARCOTTERをバージョンアップしました。

BARCOTTERに関して詳しいことは、
http://kingyo-bachi.blogspot.com/2011/11/barcotter.html
をご覧ください。

バージョンアップ内容としては、バグフィックスです。

たまに
java.lang.IllegalArgumentException: View not attached to window manager
という感じのエラーが発生していたのですが、
どうもProgressDialogが表示されている最中に画面を回転させると出るようです。

対処としては、ProgressDialogを利用するのをやめました。
ProgressDialogを利用したかったのは、バーコード読取後にそれが何かを通信して確認しているのですが、その間に他の作業をしてもらいたくないなぁということでした。
BARCOTTERには、そんなにボタンがないのですべてのボタンを通信中は利用不可にすることでProgressDialogと同じように通信中に作業できない感じにしてみました。

他の変更点として、AmazonアソシエイトIDを設定できるようにしてみました。

今回、修正の際にAndroidでの非同期処理には、AsyncTaskというのがあるということを知ったのでこれを使うようにもしてみました。
今までは、
http://magpad.jugem.jp/?eid=109
で紹介されているような方法でやっていたりしました。
置き換えは、
Runnable
に書いていたことを
doInBackground
に移して
Handler
に書いていたことを
onPostExecute
に移した感じです。


追記 2011/12/24
上記変更で落ちることはなくなったのですが、画面を回転させるとdisableにしたはずのボタンがenableになってしまう状態でした。
以下のサイトで紹介されていた
http://d.hatena.ne.jp/hyoromo/20090712/1247385249
AndroidManifest.xml ファイルに android:configChanges 属性を追記すると問題なくなりました。
紹介されているように
 orientation|keyboardHidden
と設定するとよい感じでした。
keyboardHidden
があった方がよさげな動作をしました。理由はよくわからないのですけどね。

コメントを投稿