Я пишу это больше для меня, чем для кого-либо еще.Я новичок в программировании Android.У меня была та же проблема, и я исправил ее, передав контекст методу в качестве параметра.В моем случае класс пытался записать в файл, используя фрагмент кода, который я нашел в примере Java.Поскольку я просто хотел написать постоянство объекта и не хотел интересоваться «где» файл, я изменил следующее:
public static void Test(Context fileContext) {
Employee e = new Employee();
e.setName("Joe");
e.setAddress("Main Street, Joeville");
e.setTitle("Title.PROJECT_MANAGER");
String filename = "employee.ser";
FileOutputStream fileOut = fileContext.openFileOutput(filename, Activity.MODE_PRIVATE); // instead of:=> new FileOutputStream(filename);
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(e);
out.close();
fileOut.close();
}
и из вызывающей операции, которую я используюследующее:
SerializableEmployee.Test(this.getApplicationContext());
Работает как шарм.Тогда я мог прочитать это (упрощенная версия):
public static String Test(Context fileContext) {
Employee e = new Employee();
String filename = "employee.ser";
File f = new File(filename);
if (f.isFile()) {
FileInputStream fileIn = fileContext.openFileInput(filename);// instead of:=> new FileInputStream(filename);
ObjectInputStream in = new ObjectInputStream(fileIn);
e = (Employee) in.readObject();
in.close();
fileIn.close();
}
return e.toString();
}