我正在开发一个简单的待办事项列表应用程序,我正在尝试从/向内部存储读取/写入数据。我试图了解何时应该调用那些读/写方法。
我知道活动类有一个onCreate()
方法,这对我的read方法来说是一个合理的位置,但是我应该在哪里调用我的write方法?
我想在应用关闭/结束时调用它,因此我假设onDestory()
是一个不错的位置,但我听说onDestroy()
可能不是数据存储的好位置操作,我应该使用onStop()
。
任何帮助或想法?
答案 0 :(得分:1)
根据Activity Lifecycle上的Android开发者指南中的表格,您的应用可能会在onPause()
(对于Pre-HONEYCOMB设备)之后或{{1}之后随时被系统杀死而不会发出警告}}。因此,您可能希望在这些方法中编写数据,以确保不会丢失任何内容。因此,对于较新的设备(API级别11及以上),onStop()
应该没问题。如果您的应用也应该在较旧的设备上运行,那么onStop()
将是最佳选择。
答案 1 :(得分:1)
这取决于应用程序生命周期。
请参阅This。
当用户按下主页按钮(硬键)时, onStop()
会调用。
然后,如果内存不足或其他原因,Android内存管理器会立即终止您的应用,onDestory()
永远不会调用。
你必须做的最好的事情是制作一个按钮来保存数据。当然,包括onStop()
保存例程。
答案 2 :(得分:-1)
这只是示例代码。但是你明白了。创建一个实现下面代码的自定义方法,并在“onClick”或其他任何事件上调用它。
File file;
FileOutputStream strem = null;
String line = "Hey this is my name";
try {
file = new File("sdcard/newFile.txt");
strem = new FileOutputStream(file);
byte[] bytes = line.getBytes();
strem.write(bytes);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
strem.close();
} catch (IOException e) {
e.printStackTrace();
}
}