数据持久化:
由于更高优先级Activity的跳转,没有对当前页面数据的及时保存,导致原本已经输入的数据丢失。
通过打印日志,不然发现:Activity的跳转过程中,必须执行onstop方法,而Activity的重现,必须执行OnStart方法,所有数据持久化,就是在onstop方法中,对数据进行进行保存
在OnStart方法中,对数据进行读取,并显示在原来的位置上
接下来就是相应的步骤:
1、在onstop方法中:
@Override
protected void onStop()
{
Log.e("MainActivity", "onStop");
super.onStop();
FileOutputStream fos=null;
try
{
fos=new FileOutputStream(PATH);
fos.write(et_account.getText().toString().getBytes());
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(fos!=null){
try
{
fos.close();
}
catch (IOException e)
{
Log.e("MainActivity", "关闭流失败");
}
}
}
}
2、在onstart方法中:
@Override
protected void onStart()
{
Log.e("MainActivity", "onStart");
super.onStart();
FileInputStream fis=null;
StringBuffer buffer=new StringBuffer();
try
{
fis=new FileInputStream(PATH);
int len;
byte b[]=new byte[1024];
while(-1!=(len=fis.read(b))){
buffer.append(new String(b, 0,len));
}
et_account.setText(buffer.toString().trim());
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(fis!=null){
try
{
fis.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
创新互联从2013年创立,是专业互联网技术服务公司,拥有项目成都网站设计、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元湘阴做网站,已为上家服务,为湘阴各地企业和个人服务,联系电话:028-86922220
3、最后别忘了加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
如果在genymotion模拟器中,虽然不加权限也可以,但是在真机以及官方模拟器上面,不加权限就不能用了
网页名称:数据持久化
文章源于:https://www.cdcxhl.com/article14/gcdhde.html
成都网站建设公司_创新互联,为您提供微信公众号、外贸网站建设、动态网站、静态网站、网页设计公司、服务器托管
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联