我正在创建一个应用程序,涉及从资产文件夹中的文本文件中读取数据。对于每个文件,它将数据存储在单独的ArrayList
中。这些文件在活动的onCreate()方法中一个接一个地读取。所有文本文件总计1.8 MB,并且在模拟器上,它需要12秒才能加载活动。该应用程序不会在模拟器上崩溃(它只需要大约12秒)。Android:需要异步线程?
我已阅读关于异步线程,但我从来没有需要他们在过去。我打算有一些消息或进度条来通知用户该活动实际上正在加载并且没有崩溃。
所以我的问题是:即使应用程序不加载活动时崩溃,我应该仍然把文件的阅读在异步或不同的线程?如果是这样,我将如何正确地做到这一点? (我从来没有这样做。)
下面是示例代码与文本文件的阅读:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_name);
populateArrayLists();
}
public void populateArrayLists() {
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(getAssets().open(
"text1.txt")));
String text;
while ((word = br.readLine()) != null) {
ArrayList1.add(text);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
br.close(); // stop reading
} catch (IOException ex) {
ex.printStackTrace();
}
}
br = null;
try {
br = new BufferedReader(new InputStreamReader(getAssets().open(
"text2.txt")));
// the same process is duplicated for 1-15
// it may not be the best or most efficient way but it works
任何帮助,将不胜感激。
如果可能,你会愿意帮助我开始(将它与我拥有的东西绑在一起)吗? –
我有一段时间没有做Android,所以我不能花时间编写代码(需要大量的重新学习),但是欢迎与我开始聊天室,我会协助你尽我所能吧 – slezica
好的。我实际上已经为我的尝试开辟了另一个问题(请参阅我的链接问题)。请随时查看我所尝试的内容(也许它会引发某些事情?)并投入您的输入。 –