저는 Assets 폴더에있는 텍스트 파일에서 데이터를 읽는 것을 포함하는 앱을 만들고 있습니다. 각 파일에 대해 데이터는 별도의 ArrayList
에 저장됩니다. 파일은 활동의 onCreate() 메소드에서 차례대로 읽혀집니다. 모든 텍스트 파일은 총 1.8MB로 합쳐졌으며 에뮬레이터에서는 현재 활동로드에 12 초가 걸립니다. 응용 프로그램이 에뮬레이터에서 충돌하지 않습니다 (약 12 초 소요).Android : Asynch 스레드가 필요합니까?
비동기 스레드에 대해 읽었지만 과거에는 필요가 없었습니다. 나는 사용자에게 활동이 실제로로드되고 추락하지 않았다는 것을 알리기 위해 일종의 메시지 나 진행 바를 가질 계획이었습니다.
그럼 내 질문은 : 활동을로드 할 때 응용 프로그램이 중단되지 않더라도 비동기식 또는 다른 스레드에 파일 읽기를 계속해야합니까? 그렇다면 어떻게해야 제대로 할 수 있습니까? (내가 전에 그것을 한 적이 없다.)
다음은 텍스트 파일의 읽기와 샘플 코드입니다 : 어떤 도움을 주시면 감사하겠습니다
@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
좋아. 나는 실제로 내 시도에 대한 또 다른 질문을 열었습니다. (내 연결된 질문을보십시오). 시도한 것을보고 (아마도 무언가를 발동시킬 것입니까?) 귀하의 의견을 말하도록하십시오. –