【发布时间】:2014-05-27 12:05:32
【问题描述】:
如何在 Android Fragment 或标准 Java 类(不是 Activity)中获取应用程序数据目录。
我正在做一个需要使用序列化在 Android 中执行 CRUD 操作的作业。到目前为止,我有一个标准的 Java 类,可以像这样执行读写操作
private void readFile() {
try{
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filePath));
books = (List<Book>)ois.readObject();
ois.close();
}catch (Exception e){
Log.e(TAG, e.getMessage());
}
}
private void writeFile(){
try {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filePath));
oos.writeObject(books);
oos.flush();
oos.close();
} catch (Exception e){
Log.e(TAG, e.getMessage());
}
}
问题是这个类的构造函数需要像这样传递一个String DataDir
公共类 BookSvcSioImpl 实现 IBookSvc {
private final String TAG = "BookSvcSioImpl";
private List<Book> books = null;
private String dataDir = null;
private String filePath = dataDir + "/myBooks.sio";
public BookSvcSioImpl(String appDataDirectory){
this.dataDir = appDataDirectory;
readFile();
}
我使用这个字符串参数来构造文件路径。我的问题是如何在片段或不是 Activity 的标准 Java 类中获取应用程序数据目录。在 Activity 中,我可以通过调用 getApplicationInfo.DataDir 来获取它
String dataDir = getApplicationInfo().dataDir;
BookSvcSioImpl sioService = new BookSvcSioImpl(dataDir);
sioService.create(enteredBook);
我无法在 Fragment 或 Java 类中执行此操作。
【问题讨论】:
标签: java android serialization android-fragments