我目前有一个asyncTask,它在preexecute开始一个加载栏,在后台发送一些东西到服务器,并在post执行后解除对话框并启用一个按钮.但是,由于doInBackground返回null,我的post执行没有执行.我想弄明白我能做什么让postExecute运行.有任何想法吗?谢谢
码:
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"); } }
解决方法:
在你的情况下,从doInBackground()返回null是完全可以的.只需确保onPostExecute()看起来像这样:
@OverrIDeprotected voID onPostExecute(VoID result) { Log.d(TAG, "p execute"); dialog.dismiss(); sendbutton.setEnabled(true); Log.d(TAG, "done executing");}
总结 以上是内存溢出为你收集整理的Android – 在AsyncTask中执行后执行全部内容,希望文章能够帮你解决Android – 在AsyncTask中执行后执行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)