告诉Android不要将应用程序缓存在内存中

时间:2013-12-24 08:24:51

标签: android libgdx

我正在使用libgdx编写一个应用程序,并且遇到了一个奇怪的问题。

当游戏加载时,效果很好。 退出游戏并重新加载它的那一刻 - 图形都被打乱了(即 - 它的加载与其他纹理交换的纹理,所以我可能将地面的纹理替换为主角的纹理...... )。

从历史记录中清除游戏(我假设是从缓存中进行的?)意味着游戏下次会完美加载。

那么有没有办法告诉Android(从我假设的配置)在我'关闭'时不缓存应用程序?

2 个答案:

答案 0 :(得分:0)

在您的活动中使用这些行: -

this.finish();
Process.killProcess( Process.myPid() ); 

将终止你的整个应用程序(假设它在一个进程中运行)它也将释放任何相关的内存。

这可能有助于游戏在下次申请时完全加载完全被杀死。

答案 1 :(得分:0)

您可以使用以下代码删除应用程序的catch,从活动的onDestroy()调用它,从您要退出应用程序的位置

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 File(dir, children[i]));
            if (!success) {
                return false;
            }
        }
    }
    return dir.delete();
}