非同期タスクを使用してスレッドと並行していくつかのコードを実行しようとしています。しかし、何らかの理由でアンドロイド 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) {
}
}
}
Android 2.3.3 では、logcat はこのシーケンスを示します
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("outside", "hello");
Log.w("outside", "hello");
Log.w("down", "asdasdasssasdasdasdasd");
しかし、Android 4.2.2ではのみ表示されます
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
スレッドが機能しない理由はありますか?