카메라에서 SD 카드로 이미지를 저장하고 성공/실패한 메시지 (토스트)로 UI를 업데이트하는 것과 같은 프로세스에 가장 적합한 스레드가 무엇인지 궁금합니다. 핸들러 또는 비동기 스레드? 또한 비동기 스레드가 비트 맵을 매개 변수로 사용할 수 있습니까? 당신이 달성하고자하는 당신이 AsyncTask를 매개 변수로 비트 맵을 전달할 수 있습니다에 대한이미지를 SD 카드에 저장하는 데 사용할 스레드
감사 인 Ciaran
카메라에서 SD 카드로 이미지를 저장하고 성공/실패한 메시지 (토스트)로 UI를 업데이트하는 것과 같은 프로세스에 가장 적합한 스레드가 무엇인지 궁금합니다. 핸들러 또는 비동기 스레드? 또한 비동기 스레드가 비트 맵을 매개 변수로 사용할 수 있습니까? 당신이 달성하고자하는 당신이 AsyncTask를 매개 변수로 비트 맵을 전달할 수 있습니다에 대한이미지를 SD 카드에 저장하는 데 사용할 스레드
감사 인 Ciaran
뭔가를 수행해야합니다
AsyncTask<Bitmap, Void, Boolean> task = new AsyncTask<Bitmap, Void, Boolean>() {
@Override
protected Boolean doInBackground(Bitmap... bitmaps) {
Boolean saved = writeToDisk(bitmaps[0]); //Your write code
return saved;
}
@Override
protected void onPostExecute(Boolean saved) {
if (saved) {
Toast.makeText(context, R.string.success, Toast.LENGTH_LONG).show();
//HANDLE SUCCESS
} else {
Toast.makeText(context, R.string.error, Toast.LENGTH_LONG).show();
//HANDLE ERROR
}
}
};
task.execute(bitmap);
감사합니다, 비동기 스레드가 잘 작동하는 데 사용됩니다. 언제 쓰레드 핸들러를 사용할 것인가 ?? – dancingbush
AsyncTask를 클래스는 중대하다.
안드로이드는 버튼 클릭과 같은 이벤트를 처리하는 UI 스레드에서 네트워킹을 사용할 수 없습니다. 또한 전체 GUI를 사용할 수 없게되므로 해당 스레드에서 느린 작업을 허용하지 않습니다.
이것이 SD 카드 작성에 적용되는지 확실하지 않습니다. 이는 작성해야하는 데이터의 양에 따라 다를 수 있습니다. 메가 바이트 또는 그와 비슷한 경우 SD 카드에 쓰기 위해 별도의 스레드를 사용하는 것이 쓰기 프로세스가 오래 지속될 수 있으므로 의심의 여지가 없습니다. 어쩌면 적은 비용으로. 이 같은
핸들러는 스레드가 아닙니다. – Blackbelt