비동기 작업을 사용하는 스레드로 코드 평행선을 실행하려고합니다. 하지만 안드로이드 4.2.2에서 어떤 이유로 작동하지 않습니다 .... ....................AsyncTask in android 4.2.2
나는이 코드를 가지고 있습니다 메인 클래스 :
new XmlDownloader();
task=new SendTask().execute("");
다음과 같은 클래스 :
private class SendTask extends AsyncTask<String,String,String>{
@Override
protected void onPreExecute(){
}
@Override
protected String doInBackground(String...strings){
while(true){
Log.w("outside", "hello");
}
}
return strings[0];
}
@Override
protected void onPostExecute(String country){
}
}
및
public class XmlDownloader extends Activity {
public XmlDownloader(int pos) {
DownloaderTask task = new DownloaderTask();
task.execute("");
}
private String downloadXml(String s,int pos1) {
return null;
}
private class DownloaderTask extends AsyncTask<String, Void, String> {
public DownloaderTask() {
}
@Override
// Actual download method, run in the task thread
protected String doInBackground(String... params) {
while(true){
Log.w("down", "asdasdasssasdasdasdasd");
if(isCancelled())
return null;
};
return null;
}
@Override
// Once the image is downloaded, associates it to the imageView
protected void onPostExecute(String bitmap) {
}
}
}
내가 그것을 알고 while 루프하지만, 프로그램이 순서
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("outside", "hello");
Log.w("outside", "hello");
Log.w("down", "asdasdasssasdasdasdasd");
하지만 안드로이드 4.2.2에서 스레드가 작동하지 않는 이유 만
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
어떤 아이디어를 보여줍니다 로그 캣 moment.In 안드로이드 2.3.3 나 맨 손으로?
"작동하지 않음"이란 정확히 무엇을 의미합니까? – asgs
시퀀스가 잘못되었습니다. 직렬 실행을 좋아하고 병렬 실행을 원합니다.비동기가 스레드를 생성하기 때문에 이상합니다. 내가 말했듯이 2.3.3에서 잘 작동합니다. – Tony
제 대답을보세요. 나는 그것을 편집했고, 왜 일어 났는지에 대한 답을 찾을 수 있습니다 ... 두 번째 스레드를 먼저 시작하면 다른 문자열 만 인쇄됩니다. –