我使用带有okhttp3的Retrofit 2库在我的Android应用程序中进行API调用。我需要在某些操作后使某些特定URL的缓存无效(在创建新帖子后获取帖子无效)。
在互联网上,每个人都说我需要获取Cache迭代器并通过调用remove()方法删除url,但是没有人显示如何正确地执行它。我试图以这种方式从缓存中删除第一个URL:
Cache.urls().next().remove()
但是因为urls()方法是非静态的,所以它不起作用。我不知道如何获得okhttp缓存实例。当我尝试
Cache cache = new Cache(this.getCacheDir(), 10000);
cache.urls().next();
在MainActivity
内我这次得到java.util.NoSuchElementException
。
Failed to load DynamiteLoader: java.lang.NullPointerException: Attempt to invoke interface method 'android.os.IBinder com.google.android.gms.dynamic.IObjectWrapper.asBinder()' on a null object reference
09-17 11:37:38.868 21171-21171/com.elmxana.elmxana E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.elmxana.elmxana, PID: 21171
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.elmxana.elmxana/com.elmxana.elmxana.MainActivity}: java.util.NoSuchElementException
您能否帮我找到确切的解决方案,使特定网址的缓存无效?