我在一个文件中有 1000 行,每次他/她加载应用程序时都会提供给用户。
我目前的做法是:
MainActivity: onCreate : 启动一个 AsyncTask
AsyncTask onPreExecute: 显示进度对话框
AsyncTask doInBackground: 检查键/值是否存在于 sharedpreferences 中,如果是,则在 doInBackground 中什么也不做。如果没有(第一次用户),从原始文件中读取并创建一个字符串构建器。将 StringBuilder 的内容作为键值对存储在 sharedpreferences 中。
AsyncTask onPostExecute: 从 sharedpreferences 填充 textview。关闭进度对话框。
在 doInBackground 方法中从文件中读取的代码是:
StringBuilder sb = new StringBuilder();
InputStream textStream = getBaseContext().getResources().openRawResource(R.raw.file);
BufferedReader bReader = new BufferedReader(new InputStreamReader(textStream));
String aJsonLine = null;
try {
while ((aJsonLine = bReader.readLine()) != null) {
sb.append(aJsonLine + System.getProperty("line.separator"));
}
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
bReader.close();
textStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
我看到用户必须等待大约 9-10 秒才能首次启动,然后等待 4-5 秒才能进行后续启动。在我的情况下提高性能的任何建议。