나는 사전 실행에서 로딩 바를 시작하고, 백그라운드에서 서버로 무언가를 보내고, 실행 후 대화 상자를 닫고 버튼을 활성화하는 asyncTask
을 가지고있다. 그러나 null을 반환하는 doInBackground로 인해 내 게시물 실행이 실행되지 않습니다. postExecute를 실행하려면 무엇을 할 수 있는지 알아 내려고합니다. 어떤 아이디어? 감사안드로이드 - 포스트에 AsyncTask에서 실행
코드 :
class DatabaseAsync extends AsyncTask<Void,Void,Void>{
@Override
protected void onPreExecute(){
dialog = ProgressDialog.show(MainFeedActivity.this, null, "Posting...");
}
@Override
protected Void doInBackground(Void... arg0) {
Log.d(TAG, "send to databse");
SendToDatabase();
Log.d(TAG, "sent to database - DONE");
//dialog.dismiss();
//sendButton.setEnabled(true);
return null;
}
protected void onPostExecute(){
Log.d(TAG, "p execute");
dialog.dismiss();
sendButton.setEnabled(true);
Log.d(TAG, "done executing");
}
}
http://www.vogella.de/articles/AndroidPerformance/article.html 그냥 명확하게 작동 후
이 링크를 참조하십시오. onPostExecute가 호출되지 않는 이유는 DatabaseAsync 클래스에서 전혀 구현되지 않았기 때문입니다. 대신 저자는 0 인수로 DatabaseAsync에서 메서드를 구현했습니다. 이것은 완전히 다른 오버로드 된 방법으로 간주되기 때문에 물론 실행되지 않습니다. http://developer.android.com/reference/android/os/AsyncTask.html#onPostExecute(Result)에서 JavaDoc을 살펴보십시오 –도움을 많이 주셔서 감사합니다. Arhimed, 정말 고맙습니다. – Splitusa