找半天 Eqrthquake 範例程式中的 Bug 總算被我找到了,原本以為是 SDK 與 OS 環境的不同,造成的。後來用 Vmware 模擬各種環境,不管 Win 2003 server 跟 XP 甚至 linux 上的 Android sdk 版本都測過了。另外 Android 1.0、1.1、1.5 上面的版本也都測過,所以已經很確定是範例程式本身的 Bug 了。
到底問題是出在哪邊呢?原來作者要用 Java 中 Timer 的方式,讓使用者可以動態設定,多久可以固定去執行 refresh 這個 Method。基本上,Timer 是無法在 Android 動態改變啟動頻率時間,每次只要執行到這行,就會出現 ANF,所以在第八章中從版本1到版本3都是有 bug 的,也就是只要在 Preference 中設定 Autoupdate 然後再按 OK 按鈕,程式就一定會出現 ANF。如果要讓使用者可以動態設定時間,在Android 中有 Alarms 可以替代,所以 Eqrthquake 版本1到版本3的範例程式都要改寫過,另外版本4也是有 Bug,振動的設定在模擬器上執行是有問題,那些關於振動設定的程式碼也都要先加上註解,如此一來模擬器才可以正確執行無誤。
我想這個範例程式作者可能沒做完整測試,不然怎麼會出現這些問題,找時間再整理一下這些問題反應給原作者。
在這邊我們希望能整理許多在 RIA 與 Android 開發程式的經驗,希望對大家會有幫助。
2009年7月2日 星期四
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言