我需要找到一种方法如何清除我的应用程序存储在缓存中的数据.基本上我使用Fedor(在ListView中的图像的延迟加载)惰性列表实现,我想在我加载例如100个图像时自动清除缓存.任何想法怎么做?
编辑: 代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list=(ListView)findViewById(R.id.list);
adapter=new LazyAdapter(this, mStrings);
list.setAdapter(adapter);
deleteCache(this);
adapter.notifyDataSetChanged();
}
public static void deleteCache(Context context) {
try {
File dir = context.getCacheDir();
if (dir != null && dir.isDirectory()) {
deleteDir(dir);
}
} catch (Exception e) {}
}
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 …Run Code Online (Sandbox Code Playgroud) 使用谷歌的新功能应用内更新我注意到它似乎返回旧的(以前的)更新信息而不是正确的最新信息。
Android 前段时间引入了新的强制更新功能:https : //developer.android.com/guide/app-bundle/in-app-updates 称为应用内更新
使用它时,我注意到根据谷歌的教程获取应用程序更新信息时,返回的应用程序版本代码有时与商店中可用的应用程序版本代码不同步(有以前的更新信息)。看起来我们在代码中请求的应用更新信息是从缓存中获取的,而不是真正的 google play 商店服务。
val appUpdateManager = AppUpdateManagerFactory.create(context)
val appUpdateInfoTask = appUpdateManager.appUpdateInfo
appUpdateInfoTask.addOnCompleteListener { task ->
when {
task.isSuccessful -> {
val appUpdateInfo = task.result
//the successful app update info may have old (previous) info
[...]
}
[...]
}
}
Run Code Online (Sandbox Code Playgroud)
当我们决定激活强制更新流程时,即使商店中有可用的更高版本的应用程序,应用程序也会更新到错误的版本。
更深入地探索这个主题,我发现,当通过 Google Play 商店对任何其他应用程序执行更新时,我们的操作将触发缓存刷新,并且下次应用程序内更新流返回正确的值和更新以正确的应用程序更新。
有没有人知道如何通过应用内更新或以编程方式强制刷新 Play 商店缓存来获取正确(最新)的可用应用版本代码?
更新:
我在其中一次会议上与谷歌开发人员讨论了这个案例。根据他的说法,无法以编程方式触发 Google Play 的列表更新(有关可用更新的信息) - 用户必须手动输入它,然后更新列表。Google Play 的缓存持续 24 小时,我被告知 Google Play 应该刷新它的列表。
我需要一项有关我的 android 应用程序中缓存内存的帮助。我正在设备中运行服务器(android)。我想以编程方式清除该应用程序的缓存。我在那台服务器上有数据库。基于该数据库,我的客户端操作正在进行中。所以我不希望它(数据库)受到影响。我只想清除缓存而不是清除数据。请帮我解决一下这个。
我有一些数据存储在偏好中.如果在PlayStore中发现任何更新.我需要监听更新操作并且必须清除myapp的缓存.
为了为用户提供清除缓存的快速方法,我使用附加到“清除缓存”按钮的以下函数(基于this和this):
static void clearAppCache(Context context) {
try {
File dir = context.getCacheDir();
deleteDir(dir);
} catch (Exception e) {
// TODO: handle exception
}
}
private static boolean deleteDir(File dir) {
if (dir != null && dir.isDirectory()) {
String[] children = dir.list();
for (String aChildren : children) {
boolean success = deleteDir(new File(dir, aChildren));
if (!success) {
return false;
}
}
return dir.delete();
} else if (dir!= null && dir.isFile()) {
return dir.delete();
} else {
return …Run Code Online (Sandbox Code Playgroud) 我通过从 Cloud Functions 中的触发器批量删除删除了一些文档。控制台显示它们已被删除,但是,我的应用程序仍然检索文档!这一定是 firestore 的一个错误,这是一个非常重要的错误。我发现另一个用户在这里遇到了同样的问题
我使用的路径是/users/{id}/timeline/{postId}. 我删除了一个特定的postId.
我有多个按钮,点击它们时我想要一个声音。我的代码是这样的
button.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View view) {
if(mSound != null && mSound.isPlaying()){
mSound.stop();
mSound.reset();
mSound.release();
mSound = null;
}
mSound = new MediaPlayer();
mSound = MediaPlayer.create(getApplicationContext(), R.raw.button);
mSound.start();
}
});
Run Code Online (Sandbox Code Playgroud)
在 OnCreate 中,我像这样初始化了 mSound,
mSound = new MediaPlayer();
mSound = MediaPlayer.create(this, R.raw.button);
Run Code Online (Sandbox Code Playgroud)
我收到错误 (1,-19) 以及 (0,38)。
注意:这不是重复的问题。我尝试了之前提出的所有问题的每个答案,但没有任何效果。