사진을 찍어 저장하고 그림을 업로드하도록 설정했습니다. 내 문제는 MediaScannerConnection이 그림을 업로드하기 전에 완료되지 않는다는 것입니다. 다른 종류의 신고서가 필요합니까? 나는 그것을 어떻게 기다릴 수 있습니까?새 사진을 업로드하기 전에 MediaScannerConnection이 완료되지 않았습니다.
전체 코드가 포함되도록 수정되었습니다.
사진을 찍어 저장하고 그림을 업로드하도록 설정했습니다. 내 문제는 MediaScannerConnection이 그림을 업로드하기 전에 완료되지 않는다는 것입니다. 다른 종류의 신고서가 필요합니까? 나는 그것을 어떻게 기다릴 수 있습니까?새 사진을 업로드하기 전에 MediaScannerConnection이 완료되지 않았습니다.
전체 코드가 포함되도록 수정되었습니다.
대답은 실행 가능한에서 비동기 작업을 넣어이었다 제거 :
하지만, 이것을 시도. 메인 UI 스레드 외부에서 비동기 작업을로드하려고 시도 할 수 없음을 알았습니다. 또한 아래 코드는 스캔이 완료 될 때까지 기다립니다.
private File scanMedia() {
// TODO Auto-generated method stub
MediaScannerConnection.scanFile(MainScreen.this,
new String[] { photo.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
fullPath = path;
scanned = true;
if(scanned){
new Thread()
{
public void run()
{
MainScreen.this.runOnUiThread(new Runnable()
{
public void run()
{
new PostPicture().execute();
}
});
}
}.start();
} else {
Log.e("Should scan","Didn't finish scanning");
}
}
});
return path;
}
코드에서 잘 이해하지 못했지만 나머지는 추가해야한다고 생각합니다.
private File scanMedia() {
// TODO Auto-generated method stub
MediaScannerConnection.scanFile(MainScreen.this,
new String[] { photo.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
scanned = true;
if(scanned){
new PostPicture().execute();
} else {
Log.e("Should scan","Didn't finish scanning")
}
}
});
return path;
}
을하고
if(scanned){
new PostPicture().execute();
도움을 주셔서 감사합니다. 이 오류가 발생했습니다. 잡히지 않은 원격 예외! (예외는 아직 프로세스에서 지원되지 않습니다.) 다른 스레드에서 비동기 작업을 호출하는 것으로 추측하고 있습니까 ??? – JeffK
if (스캔 한) 즉시 사진을 업로드하려고합니다. 내가 이것을 추가 한 후에 거기에 걸려 있고 업로드를 전혀 시도하지 않는다. – JeffK