在哪里可以使用代码将请求传递给Android In App Billing中的应用内结算服务?

时间:2014-07-15 20:59:04

标签: android in-app-billing

我试图关注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()?或者在其他地方?

1 个答案:

答案 0 :(得分:1)

根据您所关注的相同指南,您必须使用该代码来查询某些商品是否可供购买。你必须调用方法mService.getSkuDetails()。像这样:

Bundle skuDetails = mService.getSkuDetails(3, getPackageName(), "inapp", querySkus);

指南还写着:

  

警告:不要在主线程上调用getSkuDetails方法。调用此方法会触发可能阻止主线程的网络请求。相反,创建一个单独的线程并从该线程内部调用getSkuDetails方法。

因此,在回答您的问题时,您的代码必须放在AsyncTask内,最好放在doInBackground()方法内,因为它暗示了网络,无法在主线程上完成。

要详细了解如何使用AsyncTask,请检查this link。 希望能帮到你。