恢復數據我有一個運行省電方法中onPause()
:使用的AsyncTask
String save = numberValue.getText().toString();
FileInputStream fos;
try {
fos = openFileOutput(FILENAME,Context.MODE_PRIVATE);
fos.write(save.getBytes());
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
Toast.makeText(getBaseContext(), "Save has run", Toast.LENGTH_SHORT).show();
}
,我嘗試通過調用
new Loader().execute(FILENAME);
讀取這個文件,我的Loader類看起來是這樣的:
public class Loader extends AsyncTask<String, Integer, String> {
protected void onPostExecute(String result) {
textview.setText(result);
}
@Override
protected String doInBackground(String... params) {
FileInputStream fis;
String loaded = null;
try {
fis = openFileInput(FILENAME);
byte[] dataArray = new byte[fis.available()];
while (fis.read(dataArray) != -1) {
loaded = new String(dataArray);
}
fis.close();
textview.setText(loaded);
return loaded;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return loaded;
}
}
而我不知道爲什麼textview沒有設置爲來自FILENAME的字節。這個想法是,textview是一個越來越多的數字,這個數字在活動關閉時得到保存,並在活動再次啓動時恢復到textview。
它確實開始,我知道因爲幾分鐘後,Watch Dog告訴我,這款應用程序的後臺服務正在佔用大約50%的CPU。我沒有檢查/數據/數據/文件,我寫入的文件有正確的值。
這也不起作用 – Ryan