카메라 표면 미리보기에서 프레임 버퍼를 캡처하고 해당 버퍼를 웹의 어딘가에서 처리/게시 할 다른 기능으로 보내려합니다. http://developer.android.com/reference/android/os/AsyncTask.htmlAsyncTask를 올바르게 사용하는 방법
private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
protected Long doInBackground(URL... urls) {
int count = urls.length;
long totalSize = 0;
for (int i = 0; i < count; i++) {
totalSize += Downloader.downloadFile(urls[i]);
publishProgress((int) ((i/(float) count) * 100));
}
return totalSize;
}
protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}
protected void onPostExecute(Long result) {
showDialog("Downloaded " + result + " bytes");
}
}
다음
당신이 그것을 실행하는 방법은 다음과 같습니다 :
new DownloadFilesTask().execute(url1, url2, url3);
은 즉이 모든 작업을 하나의 큰 AsyncTask를 (가가는 그 루프는
안드로이드 개발자 가이드는이 예제를 제공합니다 거기에 앉아서 각 파일이 동 기적으로 다운로드 될 때까지 대기) 전체 작업이 백그라운드에서 작동하는지 아니면 전달 된 각 URL에 대해 여러 스레드를 시작하겠습니까?
내 프로젝트와 관련하여 프레임 버퍼를 캡처하기 위해 매번 새로운 AsyncTask를 만드는 것이 합리적일까요?
//for each frame buffer i want to process:
new FrameProcessorTask().execute(byte[]);
프레임이 떨어져있을 것입니다. 처리는 단순히 ARGB 비트 맵으로 변환하는 것입니다.이 간격을 사용하면이 문제가 발생할 가능성이 줄어 듭니다. 다음 스레드가 시작되기 전에 각 스레드가 [업로드하지 않으면 적어도 처리를 완료 할 수 있습니다.] –