0

私のアプリケーションでは、1 つの html ファイルを解析し、アプリのローカル ファイル ディレクトリに保存しています。これは onCreate() で実行しています。これで、「開く」ボタンが1つになりました。「開く」ボタンをクリックすると、ファイルディレクトリとしてパスを指定してAndroidの選択ダイアログが表示されます。

次に、onDestroy() で、ファイル ディレクトリに保存されているすべてのファイルを削除しています。これは 4.0 まで動作しています。

しかし、4.1 では、セレクター ダイアログを開くと、すぐに onDestroy() が呼び出されるためです。別のアプリ (例: Html ビューアー) がファイルを開こうとするまでに、ファイルは使用できなくなります。そのため、ファイルが見つかりませんと表示されます。ローカル ファイルはどこで削除しますか?

4

1 に答える 1

0

このコードを試してください

//Deleting the temperary folder and the file created in the sdcard
public static boolean deleteDir(File dir) 
{
    if (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;
            }
        }
    }

    // The directory is now empty so delete it
    return dir.delete();
}

このコードをonDestroy()

File checkFile = new File(Environment.getExternalStorageDirectory(),"/FolderName/");
//getting the control of sdcard files   
deleteDir(checkFile);
于 2012-12-04T11:08:37.103 に答える