在Android应用内计费中,我应该将请求传递给应用内计费服务的代码放在哪里?

在Android应用内计费中,我应该将请求传递给应用内计费服务的代码放在哪里?,android,in-app-billing,Android,In App Billing,我正试着跟着你走。我可以提出应用内计费请求。我应该在我的项目中添加以下代码: ArrayList<String> skuList = new ArrayList<String> (); skuList.add("premiumUpgrade"); skuList.add("gas"); Bundle querySkus = new Bundle(); querySkus.putStringArrayList(“ITEM_ID_LIST”, skuList); Array

我正试着跟着你走。我可以提出应用内计费请求。我应该在我的项目中添加以下代码:

ArrayList<String> skuList = new ArrayList<String> ();
skuList.add("premiumUpgrade");
skuList.add("gas");
Bundle querySkus = new Bundle();
querySkus.putStringArrayList(“ITEM_ID_LIST”, skuList);
ArrayList skuList=new ArrayList();
skuList.添加(“premiumUpgrade”);
skuList。添加(“气体”);
Bundle querySkus=新Bundle();
querySkus.putStringArrayList(“项目ID列表”,skuList);

一切都很好,但我该把代码放在哪里呢?在OnCreate()中?或者其他地方?

根据您正在遵循的同一指南,您必须使用该代码来查询某些项目是否可供购买。您必须调用方法
mService.getSkuDetails()
。像这样:

Bundle skuDetails = mService.getSkuDetails(3, getPackageName(), "inapp", querySkus);
指南还规定:

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

因此,在回答您的问题时,您的代码必须放在
AsyncTask
中,最好放在
doInBackground()
方法中,因为它涉及网络,不能在主线程上完成

要了解有关使用
异步任务的更多信息,请选中。

希望能对你有所帮助

好的,那么我在问题中引用的代码和调用getSkuDetails放在同一个位置?我不太清楚。是的,您的
querySkus
Bundle是
getskuedetails()
的一个参数。