数据持久化:
由于更高优先级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模拟器中,虽然不加权限也可以,但是在真机以及官方模拟器上面,不加权限就不能用了