我试图关注In-App Billing tutorial on the Android Developer site。我正在制作应用内结算请求。我应该将代码添加到我的项目中:
ArrayList<String> skuList = new ArrayList<String> ();
skuList.add("premiumUpgrade");
skuList.add("gas");
Bundle querySkus = new Bundle();
querySkus.putStringArrayList(“ITEM_ID_LIST”, skuList);
一切都很好,但我在哪里放这个代码?在OnCreate()?或者在其他地方?
答案 0 :(得分:1)
根据您所关注的相同指南,您必须使用该代码来查询某些商品是否可供购买。你必须调用方法mService.getSkuDetails()
。像这样:
Bundle skuDetails = mService.getSkuDetails(3, getPackageName(), "inapp", querySkus);
指南还写着:
警告:不要在主线程上调用getSkuDetails方法。调用此方法会触发可能阻止主线程的网络请求。相反,创建一个单独的线程并从该线程内部调用getSkuDetails方法。
因此,在回答您的问题时,您的代码必须放在AsyncTask
内,最好放在doInBackground()
方法内,因为它暗示了网络,无法在主线程上完成。
要详细了解如何使用AsyncTask
,请检查this link。
希望能帮到你。