【发布时间】:2020-12-24 05:01:23
【问题描述】:
我正在使用woodroid library 将数据从我的wordpress woocommerce 网站获取到我的Android 应用程序中,遵循this。现在这个库只能一起检索所有数据,然后我可以显示它。但我不知道为什么我的应用程序以这种方式加载数据非常慢。所以我需要通过使用下面的代码一一获取值(作为示例产品)来加快流程,
val allProducts : MutableLiveData<Product> by lazy {
woocommerce = Woocommerce.Builder().setSiteUrl(baseURL)
.setApiVersion(Woocommerce.API_V2)
.setConsumerKey(consumerKey)
.setConsumerSecret(consumerSecret)
.build()
preLoadProducts()
MutableLiveData<Product>()
}
private fun preLoadProducts() {
val productFilter = ProductFilter()
productFilter.page = pageNum
productFilter.per_page = 1
loadProducts(productFilter)
}
private fun loadProducts(productFilter: ProductFilter){
woocommerce.ProductRepository().products(productFilter).enqueue(object :
Callback<List<Product>> {
override fun onResponse(call: Call<List<Product>>, response: Response<List<Product>>) {
try{
val productsResponse = response.body()
allProducts.value = productsResponse?.get(0)
pageNum ++
preLoadProducts()
}catch (e : Exception){
e.printStackTrace()
allProducts.value = null
}
}
override fun onFailure(call: Call<List<Product>>, t: Throwable) {
t.printStackTrace()
allProducts.value = null
}
})
}
现在我明白这不是实现这一目标的最有效方法,但它对我有用(几乎)。 所以我需要一个更好、更有效的解决方案。如果有人有任何想法,请帮忙。 谢谢
【问题讨论】:
标签: android android-studio woocommerce wordpress-rest-api woocommerce-rest-api