android dns缓存清除

时间:2012-01-11 14:53:41

标签: android linux

我创建了一个应用程序,可以ping一些网页,并在发生故障时发送短信。 但是当DNS不工作时,这个应用程序不会发送短信,因为网页的IP是ex。 www.google.com保存在dns缓存中,我的应用程序仍在使用此IP,因此我没有收到有关此问题的通知。

我尝试过以下方法删除此缓存文件,但没有成功:

static int clearCacheFolder(final File dir, final int numDays) {

    int deletedFiles = 0;
    if (dir!= null && dir.isDirectory()) {

        try {
                for (File child:dir.listFiles()) {

                //first delete subdirectories recursively
                if (child.isDirectory()) {
                    deletedFiles += clearCacheFolder(child, numDays);
                }

                //then delete the files and subdirectories in this dir
                //only empty directories can be deleted, so subdirs have been done first
                //if (child.lastModified() < new Date().getTime() - numDays *DateUtils.DAY_IN_MILLIS) {
                    if (child.delete()) {
                        deletedFiles++;
                    }

                //}
            }
        }
        catch(Exception e) {
            Log.e(TAG, String.format("Failed to clean the cache, error %s", e.getMessage()));
        }
    }
    return deletedFiles;
}

ublic static void clearCache(final Context context, final int numDays) {
    Log.i(TAG, String.format("Starting cache prune, deleting files older than %d days",numDays));

    int numDeletedFiles = clearCacheFolder(context.getCacheDir(), numDays);

    Log.i(TAG, String.format("Cache pruning completed, %d files deleted", numDeletedFiles));

此代码不会清除应用程序缓存。有谁知道为什么?请帮忙!

此论坛中还有另一篇文章如下:

System.setProperty( "networkaddress.cache.ttl", "0" );
System.setProperty( "networkaddress.cache.negative.ttl", "0" );

我只是想知道上面的代码是否有用,我如何在我的Android代码中使用它?请让我知道!

由于

0 个答案:

没有答案