reportBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String ing_alert = getResources().getString(R.string.ing_alert);
dialog = ProgressDialog.show(JemoAgent.this, "", ing_alert, true);
new Thread() {
public void run() {
super.run();//추가
if(ser_yn.equals("Y")) { //봉사가 y이면
if(idEdit.getText().toString().equals("")) {
agt_id = "N";
}else {
agt_id = idEdit.getText().toString();
}
ser_yn = "Y";
String rep_tel_1="";//전화 번호
SQLiteDatabase db;
db = mHelper.getReadableDatabase();
Cursor cursor;
cursor = db.rawQuery("SELECT uni_ara, jel_num, jel_siz, rep_tel_1, lat, lon, org_fle_nam, uns_nam FROM oceanjelly", null);
File file =null;
InputStream is = null;
byte[] data =null;
InputStreamBody isb =null;
FileBody fileBody=null;
HttpClient client = new DefaultHttpClient();
HttpPost request = new HttpPost();
try {
//String url = "http://medm.server.ne.kr:8888/ME/oceanv2/jemo/upload.jsp";
String url = "http://portal.nfrdi.re.kr/oeis/ME/oceanv2/jemo/upload.jsp";
request.setURI(new URI(url));
MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
StringBody sb1 = null;
StringBody sb2 = null;
StringBody sb3 = null;
StringBody sb5 = null;
StringBody sb6 = null;
StringBody sb7 = null;
while (cursor.moveToNext()) {
sb1=new StringBody(cursor.getString(0));
multipartEntity.addPart("uni_ara", sb1);
sb2=new StringBody(cursor.getString(1));
multipartEntity.addPart("jel_num", sb2);
sb3=new StringBody(cursor.getString(2));
multipartEntity.addPart("jel_siz", sb3);
rep_tel_1=cursor.getString(3);
sb5=new StringBody(cursor.getString(4));
multipartEntity.addPart("lat", sb5);
sb6=new StringBody(cursor.getString(5));
multipartEntity.addPart("lon", sb6);
//String fileName=cursor.getString(6).substring(cursor.getString(6).lastIndexOf("/")+1);
file=new File(cursor.getString(6));
fileBody=new FileBody(file);
multipartEntity.addPart("uploadedFile",fileBody);
sb7=new StringBody(URLEncoder.encode(cursor.getString(7),"utf-8"));
multipartEntity.addPart("uns_nam", sb7);
}
StringBody sb8=new StringBody(agt_id);
StringBody sb9=new StringBody(ser_yn);
StringBody sb10=new StringBody(rep_tel_1);
StringBody sb11=new StringBody("1");
multipartEntity.addPart("agt_id", sb8);
multipartEntity.addPart("ser_yn", sb9);
multipartEntity.addPart("rep_tel_1", sb10);
multipartEntity.addPart("rep_knd", sb11);
request.setEntity(multipartEntity);
HttpResponse response = client.execute(request);
HttpEntity resEntity = response.getEntity();
str = EntityUtils.toString(resEntity).trim();
if(str.equals("yes")) {//신고완료
Intent i = new Intent(JemoAgent.this, FinishAlert.class);
startActivity(i);
overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
}else if(str.equals("no")) {//신고실패
Intent i = new Intent(JemoAgent.this, FinishAlertNo.class);
startActivity(i);
overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
}else {
Intent i = new Intent(JemoAgent.this, FinishAlertNo.class);
startActivity(i);
overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
}
response.getEntity().getContent().close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else {
//위와 비슷한 코드
}
dialog.dismiss();
}
}.start();
}
});
위 코드 처럼 버튼을 누르면 프로그래스바가 실행되며 스레드가 돕니다. 스레드가 도는 부분은 db입력 부분이구요. 이때 db 입력 시 너무 많은 시간이 소요 됩니다. 4~5분 후에 프로그래스바가 종료 되며 db 입력이 완료 되었다는 인텐트가 생성되는데요. 프로그래스바를 짧게 띄우고 완료 되었다는 인텐트는 빨리 띄우고 싶은데요. 도움 부탁드립니다.