[英]Android - Saving data to an internal storage
我正在开发一个简单的待办事项清单应用程序,并且正在尝试从内部存储读取/写入数据。 我试图了解什么时候应该调用那些读/写方法。
我知道活动类具有onCreate()
方法,这对于我的read方法来说是一个合理的位置,但是我应该在哪里调用我的write方法呢?
我想在应用程序关闭/结束时调用它,所以我假设onDestory()
是一个不错的位置,但是我听说onDestroy()
可能不是数据存储操作的一个不错的位置,我应该使用onStop()
。
有什么帮助或想法吗?
遵循Activity Lifecycle上Android开发者指南中的表格,在onPause()
(对于HONEYCOMB之前的设备)或onStop()
之后,您的应用可能会随时被系统杀死,而不会发出警告。 因此,您可能希望使用这些方法写入数据,以确保不会丢失任何数据。 因此,对于较新的设备(API级别为11或更高), onStop()
应该很好。 如果您的应用程序也应在较旧的设备上运行,那么onPause()
将是最佳选择。
这取决于应用程序生命周期。
看看这个 。
当用户按下主页按钮(硬键)时, onStop()
调用。
然后,如果内存不足或其他原因,Android内存管理器将立即onDestory()
您的应用程序,并且永不调用onDestory()
。
您最好要做的就是创建一个按钮来保存数据。 当然,Include onStop()
保存例程。
这只是示例代码。 但是你明白了。 创建实现以下代码的自定义方法,并在“ 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();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.