如何在小部件,服务和应用程序之间共享文件?

时间:2012-03-30 12:55:36

标签: android file file-io android-widget intentservice

我正在编写一个App和一个需要数据的accopmanying小部件。该数据通过网络下载。我打算使用IntentService进行下载。此服务将数据保存为文件。然后,App和小部件都使用此文件。

如何在服务写入时阻止应用和窗口小部件读取文件?

当应用程序或窗口小部件正在读取文件时,如何阻止服务写入文件?

谢谢!

1 个答案:

答案 0 :(得分:1)

考虑扩展Application并声明一个字段以供读取和写入权限:

public class APP extends Application {
    boolean motherMayI;

    ...
}

然后,无论何时打开FileInputStreamFileOutputStream

...
if (motherMayI) {
    APP.motherMayI = false;
    FileInputStream input = context.openFileInput("some_file_name");

    //read your stuff

    input.close()
    APP.motherMayI = true;
}
...

基本上,字段motherMayI必须对某人读取或写入文件是正确的,并且在读取或写入文件时它唯一是错误的。

编辑:

public FileInputStream getFileInputStream() {
    return context.openFileInput(file_name);
}

这需要APP的实例。