Как я использую в своих интересах кнопку “Clear Cache” Android

В настройках Android, в "Управляют Приложениями" действие при нажатии на приложение, данные разломаны на Приложение, Данные и кэш. Существует также кнопка для очистки кэша. Мои звуковые файлы кэшей приложения и я хотели бы, чтобы пользователь смог очистить кэш с помощью этой кнопки. Как я храню их так, они смешаны в с кэшем, и пользователь может очистить их? Я попытался хранить файлы с помощью обоих из следующих методов:

newFile = File.createTempFile("mcb", ".mp3", context.getCacheDir());


newFile = new File(context.getCacheDir(), "mcb.mp3");
newFile.createNewFile();

В обоих случаях эти файлы перечислены как Данные и не Кэш.

15
задан Jay Askren 17 May 2010 в 12:12
поделиться

2 ответа

Я не могу воспроизвести вашу проблему, возможно, что-то еще не так.

Используя следующее приложение, я смог создать файл в каталоге кэша, а затем очистить его с помощью функции «Управление приложениями» в разделе «Настройки». Мне не пришлось ничего менять в манифесте, и, насколько я могу судить, вам действительно не следует связываться с параметром 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 КБ пространства.

24
ответ дан 1 December 2019 в 02:28
поделиться

Я думаю, вам нужно использовать android:allowClearUserData и android:manageSpaceActivity в теге , чтобы увидеть эту опцию в 'Manage Applications'. Дополнительную информацию см. на http://developer.android.com/guide/topics/manifest/application-element.html.

Альтернативный вариант - опция очистки кэша в вашей активности.

4
ответ дан 1 December 2019 в 02:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: