В настройках Android, в "Управляют Приложениями" действие при нажатии на приложение, данные разломаны на Приложение, Данные и кэш. Существует также кнопка для очистки кэша. Мои звуковые файлы кэшей приложения и я хотели бы, чтобы пользователь смог очистить кэш с помощью этой кнопки. Как я храню их так, они смешаны в с кэшем, и пользователь может очистить их? Я попытался хранить файлы с помощью обоих из следующих методов:
newFile = File.createTempFile("mcb", ".mp3", context.getCacheDir());
newFile = new File(context.getCacheDir(), "mcb.mp3");
newFile.createNewFile();
В обоих случаях эти файлы перечислены как Данные и не Кэш.
Я не могу воспроизвести вашу проблему, возможно, что-то еще не так.
Используя следующее приложение, я смог создать файл в каталоге кэша, а затем очистить его с помощью функции «Управление приложениями» в разделе «Настройки». Мне не пришлось ничего менять в манифесте, и, насколько я могу судить, вам действительно не следует связываться с параметром android: allowClearUserData
.
public class CreateCacheFile extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) findViewById(R.id.CreateFileButton);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
File file = new File(
CreateCacheFile.this.getCacheDir(), "temp.txt");
try {
file.createNewFile();
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
bw.write("Hello World");
bw.newLine();
bw.close();
} catch (IOException e) {
Toast.makeText(
CreateCacheFile.this,
"Error!",
Toast.LENGTH_SHORT).show();
}
}
});
}
}
После запуска приложения (и нажатия кнопки для создания файла):
$ adb -d shell
# ls /data/data/com.example.CreateCacheFile/cache
temp.txt
# cat /data/data/com.example.CreateCacheFile/cache/temp.txt
Hello World
#
Управление приложениями сообщает, что для кэша используется 4 КБ пространства. После щелчка по кнопке, чтобы очистить его:
# ls /data/data/com.example.CreateCacheFile/cache
# cat /data/data/com.example.CreateCacheFile/cache/temp.txt
temp.txt: No such file or directory
#
На этом этапе «Управление приложениями» сообщает, что для кэша используется 0 КБ пространства.
Я думаю, вам нужно использовать android:allowClearUserData
и android:manageSpaceActivity
в теге
, чтобы увидеть эту опцию в 'Manage Applications'. Дополнительную информацию см. на http://developer.android.com/guide/topics/manifest/application-element.html.
Альтернативный вариант - опция очистки кэша в вашей активности.