私のAndroidアプリでは、初期アクティビティを使用してASyncTaskで読み込みを開始し、約10枚の画像をダウンロードしてテーブルに表示します。 DDMSとデバッグモードの調査を始めたばかりです。アプリケーションのロード後に、asynctaskと10個のHTTPスレッドのためのスレッドが1つあります。それは普通ですか?最後の命令が実行されたときに彼らは死んではいけませんか?Androidスレッド待機中
は、ここに私のコードです:
public void download (String imageURL, String path, String filename){
new Thread(){
public void run() {
long startTime = System.currentTimeMillis();
try {
//Create the path
new File(path).mkdirs();
//File to download
File file = new File(path+filename);
if (!file.exists()){
Log.d(Manager.getAppName(),file.getName()+" dont exists");
URL url = new URL(imageURL);
URLConnection ucon = url.openConnection();
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
FileOutputStream fos = new FileOutputStream(file);
fos.write(baf.toByteArray());
bis.close();
fos.close();
is.close();
Log.d(Manager.getAppName(), "download ready in "
+((float)(System.currentTimeMillis() - startTime)/1000f)
+ " sec");
} else {
Log.d(Manager.getAppName(),"File exists (ignoring)");
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if (latch!=null){
latch.countDown();
Log.d(Manager.getAppName(),"Download finished "+latch.getCount()+" remaining");
}
}
}).start();
}彼らはスレッドプールの一部である場合
はい私は何をすべきか手動でスレッドを開始しますか? – ChyBy
'run()'からそれらの部分と関連部分を開始するために使用するコードを提供してください。質問を更新してください。 –
はい、このトピックについて興味がありますので、コードで質問を更新してください。 –