我正在創建一個應用程序,涉及從資產文件夾中的文本文件中讀取數據。對於每個文件,它將數據存儲在單獨的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
好的。我實際上已經爲我的嘗試開闢了另一個問題(請參閱我的鏈接問題)。請隨時查看我所嘗試的內容(也許它會引發某些事情?)並投入您的輸入。 –