我在文件中有1000行,每次加载应用程序时都会向用户提供这些行。Android字符串内容加载性能
我目前的做法是:
MainActivity:的onCreate:启动的AsyncTask
的AsyncTask onPreExecute:进度显示dialiog
的AsyncTask doInBackground:检查键/值存在于共享首选项中,如果是,则doInBackground中不做任何事情。如果没有(第一次用户),从原始文件读取并创建一个stringbuilder。将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秒以后启动。任何建议,以改善我的情况下的表现。
1000行速度快,不需要异步任务 – 2013-03-25 05:52:08
也取决于网络速度。如果您希望用户与ui进行交互,则可以使用服务。你可以使用robospice。 – Raghunandan 2013-03-25 05:53:01
@matheszabi,如果我不使用异步任务,UI会挂起10秒钟。 – Sandeep 2013-03-25 05:54:47