我正在使用V3查询来自play商店的购买信息。我想知道是否可以清除本地缓存。
V3为计费API添加了本地缓存功能,以减少网络流量。我有一个每天运行的更新服务,它更新我的元数据,由于我在应用程序中显示了成本,所以我希望刷新本地缓存并触发更新,以防我更新了价格,以确保显示正确的价格。
文档显示:
因为Google客户端现在在设备上本地缓存应用程序计费信息,所以您可以使用版本3 API来更频繁地查询这些信息,例如通过getPurchases调用。与以前版本的API不同,许多版本3的API调用将通过缓存查找来服务,而不是通过与Google的网络连接来服务,这大大加快了API的响应时间。
发布于 2013-01-22 03:34:36
不幸的是,Google客户端正在进行缓存,也没有公开用于清除缓存的API。
我不明白你为什么要清理缓存?任何更改都会通知Google客户端,因此将相应地使其缓存失效。假设返回的电话是正确的。
发布于 2018-12-07 06:51:51
您必须知道,android在应用程序购买一次购买是只允许一个用户在一生中一次。您再次需要它,您必须发出请求或在游戏控制台中创建一个新产品。要获得更多信息,请访问此链接。
发布于 2013-01-16 01:09:20
试试这个:
添加以下Application
类:
package com.hrupin.cleaner;
import java.io.File;
import android.app.Application;
import android.util.Log;
public class MyApplication extends Application {
private static MyApplication instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
public static MyApplication getInstance() {
return instance;
}
public void clearApplicationData() {
File cache = getCacheDir();
File appDir = new File(cache.getParent());
if (appDir.exists()) {
String[] children = appDir.list();
for (String s : children) {
if (!s.equals("lib")) {
deleteDir(new File(appDir, s));
Log.i("TAG", "**************** File /data/data/APP_PACKAGE/" + s + " DELETED *******************");
}
}
}
}
public static boolean deleteDir(File dir) {
if (dir != null && dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
return dir.delete();
}
}
然后,从任何一个Activity
打这个电话
MyApplication.getInstance().clearApplicationData();
参考资料:
谢谢。
https://stackoverflow.com/questions/14354475
复制相似问题