您好,登录后才能下订单哦!
数据持久化:
由于更高优先级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();
                }
            }
        }
    }
3、最后别忘了加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
如果在genymotion模拟器中,虽然不加权限也可以,但是在真机以及官方模拟器上面,不加权限就不能用了
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。