저는 android에서 새롭고 저의 스레드에 대해 질문합니다. 나는 어리석은 질문이라고 생각하지만 미안합니다. 나는 onClick 버튼 리스너를 가지고 있습니다. 그 일은 URL 다운로드 링크를 얻고 변수에 저장합니다. 내가 파일 크기를 얻을 원하기 때문에실행중인 스레드가 지연되고 있습니다.
/**
* this method invoke from setPositiveButton's dialog
*
* @param rootView
*/
private void addURLToList(View rootView) {
editTextAddURL = (EditText) rootView.findViewById(R.id.editText_add_url);
Log.i("===", "addURLToList: " + editTextAddURL.getText());
stringUrl = editTextAddURL.getText().toString();
*start GetSizeOfFile thread for getting size file and store
* in lenghtOfFile variable
*/
new GetSizeOfFile().start();
Log.i("====", "size of file after Thread: " + lenghtOfFile);
}
나는 스레드를 만들 수 있습니다. Log.i("====", "size of file after Thread: " + lenghtOfFile);
이 내 로그 캣입니다
private class GetSizeOfFile extends Thread {
@Override
public void run() {
super.run();
try {
URL url = new URL(stringUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
lenghtOfFile = connection.getContentLength();
Log.i("====", "size of file in Thread: " + lenghtOfFile);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
모든 것을 확인하지만 스레드가 시작되면, 몇 초 후에 내 lenghtOfFile 변수가 초기화되고 내가이 줄 lenghtOfFile
에 0을 가지고 :
02-22 10:02:11.352 11333-11333/com.example.manifest.simplefiledownloadmanager I/===: addURLToList: http://dl2.soft98.ir/soft/a/Adobe.Shockwave.Player.12.2.7.197.IE.rar
02-22 10:02:11.352 11333-11333/com.example.manifest.simplefiledownloadmanager I/====: file name : Adobe.Shockwave.Player.12.2.7.197.IE.rar
02-22 10:02:11.352 11333-11333/com.example.manifest.simplefiledownloadmanager I/====: size of file after Thread: 0
02-22 10:02:36.544 11333-11495/com.example.manifest.simplefiledownloadmanager I/====: size of file in Thread: 13524394
내가 원하는 스레드가 처음부터 파일의 크기를 가져옵니다. 올바른 스레드를 종료하거나 표준 방법을 종료해야합니다. 미안 해요. 안드로이드에서 새로운 기능입니다.
... 콜백을 생성, "스레드의 끝"에서 콜백을 호출합니다 calback에 스레드에서 결과를 필요로하는 직원을 ... 스레드 대기 결과는'addURLToList'는 쓸모없는 스레드를 만든다. (예, NetworkOnMainThreadExcpetion을 알고있다.하지만 그것은 메인 스레드를 막지 않기 위해서 만들어진 것이다.) – Selvin
왜 몇몇 사람들은 어떤 게시물에 마이너스를 주는지 모르겠다. new in android 나에게 대답하고 싶지 않다면 대답하지 마라, 왜 마이너스를 준다 !!!! –
@ 셀빈 감사합니다. 당신에 관한 튜토리얼 링크를 보낼 수 있습니까? –