Android 异步任务有时有效,有时无效
第一次尝试实现AsyncTask。当我第一次启动应用程序时,它会工作并显示“加载消息”对话框(尽管微调器不会!),但在我启动“活动”时,应用程序会冻结数秒(在后台加载),没有明显的ProgressDialog或调用的“活动”,这意味着AsyncTask不工作。这是我的密码Android 异步任务有时有效,有时无效,android,android-studio,android-asynctask,Android,Android Studio,Android Asynctask,第一次尝试实现AsyncTask。当我第一次启动应用程序时,它会工作并显示“加载消息”对话框(尽管微调器不会!),但在我启动“活动”时,应用程序会冻结数秒(在后台加载),没有明显的ProgressDialog或调用的“活动”,这意味着AsyncTask不工作。这是我的密码 private class PrepareFragments extends AsyncTask<Void, Void, ArrayList<Cursor>> { ProgressDialog
private class PrepareFragments extends AsyncTask<Void, Void, ArrayList<Cursor>> {
ProgressDialog pd;
ArrayList<Cursor> cursors;
@Override
protected void onPreExecute() {
Log.d("onPre : ", "true");
pd = new ProgressDialog(CategoryDrugs.this);
pd.show();
pd.setMessage("Loading...");
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setProgress(0);
pd.setMax(100);
}
@Override
protected ArrayList<Cursor> doInBackground(Void ... arg) {
Log.d("doInBG : ", "true");
// my custom code here
}
@Override
protected void onProgressUpdate(Void... values) {
pd.incrementProgressBy(1);
}
@Override
protected void onPostExecute(ArrayList<Cursor> cursor) {
Log.d("onPost : ", "true");
if (pd.isShowing()) {
pd.dismiss();
}
}
}
私有类PrepareFragments扩展异步任务{
进展性帕金森病;
数组列表游标;
@凌驾
受保护的void onPreExecute(){
Log.d(“onPre:,“true”);
pd=新进展对话框(CategoryDrugs.this);
pd.show();
pd.setMessage(“加载…”);
pd.setProgressStyle(ProgressDialog.STYLE_水平);
pd.setProgress(0);
pd.setMax(100);
}
@凌驾
受保护的ArrayList doInBackground(无效…arg){
Log.d(“doInBG:,“true”);
//我的自定义代码在这里
}
@凌驾
受保护的void onProgressUpdate(void…值){
pd.增加进度(1);
}
@凌驾
受保护的void onPostExecute(ArrayList游标){
Log.d(“onPost:,“true”);
if(pd.isShowing()){
pd.解散();
}
}
}
如果您的doInBackground执行得非常快,则该对话框可能不会显示或只是闪烁。
+电话秀终于开始了
pd = new ProgressDialog(CategoryDrugs.this);
pd.setMessage("Loading...");
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setProgress(0);
pd.setMax(100);
pd.show();
尝试使用executor
new PrepareFragments().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
您从何处开始aync任务Inside onCreate()。。。。下面是代码“new PrepareFragments().execute();”您是否在
doinbackgound
方法中关闭了数据库?是的,在恢复时将其移入仍然是相同的结果对话框根本没有问题。父活动在显示目标活动之前需要很长时间。请检查您是否在onCreate中执行了很多操作