我最近在Android Market上發佈了一個應用程序,並收到了一些我無法弄清楚的錯誤報告。我的應用程序的功能可以「激活」,只需支付1美元的費用,而且它基於Google的Dungeons示例應用程序。Android應用內結算示例中的嚴重問題?
這個示例應用程序存在兩個主要問題,我認爲這會給很多開發者帶來問題。
1)它在BillingService中使用了不推薦的方法。 BillingService是應用程序特定的,並處理與Android Market應用程序的RPC通信。即使你的Acitivty不是,它也需要在身邊。它實現了這個方法。
@覆蓋 公共無效在onStart(意向意圖,詮釋startId){}
取而代之的是新的
公衆詮釋onStartCommand的(意向意圖,詮釋旗幟,INT startId){}
2)更嚴重的是,在onStart/onstartCommand調用中,Intent us null爲空的情況導致了NPE,因爲代碼
String action = intent.getAction();
已在示例應用程序中執行,未進行任何空檢查。
據商務部 http://developer.android.com/reference/android/app/Service.html#onStart(android.content.Intent,INT)
「如果它的進程已經走了之後正在重新啓動該服務,它以前只是START_STICKY_COMPATIBILITY返回任何東西,這可能是空的。」
由於我是新手Android開發人員,我不想哭狼。任何人都可以告訴我Dungeons示例應用程序是否損壞,或者我在這裏誤解了某些東西?
如果你想要另一個視點,你可以查看這個應用教程以及http://www.anddev.org/advanced-tutorials-f21/simple-inapp-billing-payment-t52060.html :-) – Blundell 2011-05-22 21:16:26