AsyncTask,插入,在Android中选择错误的执行顺序

乔迪·西普本斯

嘻嘻,

我目前正在调试一个应用程序,该应用程序从数据库检索某些数据,然后将其显示在列表视图中。但是,它使用一种额外的方法来按日期对这些结果进行排序,并将其显示在名为“ Gesorteerd op datum”的类别中,并且其中包含带有月份的子类别。例子:

链接屏幕截图,因为我错过了1个上传图片的声誉。

如您所见,打开的部分是静态的,我正在使用一个函数来选择特定时间段之间的所有数据,然后将这些数据分类几个月,然后将它们重新插入数据库中,以使数据尽可能地动态(我还插入定制的“ Gesorteerd op Datum”和月份。但是,当首次使用此应用并打开此片段时,“基准面上的Gesorteerd”部分完全丢失。但是,通过按回去然后再进入那里。

因此,问题在于插入要花费更长的时间才能完成,然后才能选择并显示所有列表项。我尝试使用2个Asynctasks修复此问题。

第一个asynctask:DoInBackground函数插入“ Gesorteerd op datum”和所有子月份,它使用一个侦听器,以便在完成之前不会做下一件事。然后onPostExecute运行一个显示类别的函数。但是,这里已经出错了,因为未在稍后用于显示列表视图的数组中添加“ gesorteerd op datum”。

第二个Asynctask:DoInBackground使用一个函数来按日期获取和排序事件,然后将其插入。然后onPostexecute获取所有事件,包括“ gesorteerd op datum”事件,并将它们显示在下面的列表视图中。如上所述,它没有执行应做的操作。

有人知道哪里出了问题吗?因为阅读完Asynctask文档后,我了解它不应在完成第一次插入操作后加载类别。但是它仍然可以将它们加载到早期。

/*
 * Insert Static categories into database.
 * Easier to manipulate and prevents unnecessary code.
 */
class Static extends AsyncTask<Object, Object, Object>{     
    @Override
    protected Object doInBackground(Object... params) {
        // TODO Auto-generated method stub
        insertStaticData();
        return null;
    }

    @Override
    protected void onPostExecute(Object result)
    {
        getAllStaticData(); 
        new async().execute();
    }
}

/*
 * Insert Static categories into database.
 * Easier to manipulate and prevents unnecessary code.
 */
class async extends AsyncTask<Object, Object, Object>{      

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        toggleLoadingView(mLoading, mExpandableListView, mRootView, true);
    }

    @Override
    protected Object doInBackground(Object... params) {
        // TODO Auto-generated method stub
        if (sCurrentRadius != 0 && mLastLocation != null) {
            loadCursor(mLastLocation, sCurrentRadius); 
        } else{
            loadCursor();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Object result)
    {
        getAllDynamicData();
    }
}

这些是我的Asyncs,来自下面的建议。他们现在向他们显示,但不会显示应该显示的所有月份。当我重新加载时显示它们。

乔迪·西普本斯

脏溶液:

创建一个处理程序,并发布X秒钟的延迟,以便完成插入。X可能会因您需要插入多少东西而有所不同。

  /*
   * Run the Async and then after a delay load the listview needed. 
   */
  new Static().execute();

  final Handler handler = new Handler();
  handler.postDelayed(new Runnable() {
  @Override
         public void run() {
            if (sCurrentRadius != 0 && mLastLocation != null) {
                loadCursor(mLastLocation, sCurrentRadius); 
            } else{
                loadCursor();
            }
        }
    }, 4000);

/*
     * Insert Static categories into database.
     * Easier to manipulate and prevents unnecessary code.
     */
    class Static extends AsyncTask<Object, Object, Object>{     

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            toggleLoadingView(mLoading, mExpandableListView, mRootView, true);
        }

        @Override
        protected Object doInBackground(Object... params) {
            // TODO Auto-generated method stub
            insertStaticData();
            return null;
        }

        @Override
        protected void onPostExecute(Object result)
        {
            getAllStaticData();
        }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android从图库中选择显示内存错误的图像

来自分类Dev

具有顺序执行的多个AsyncTask

来自分类Dev

Android runOnUiThread执行顺序

来自分类Dev

Sleep()以“错误”的顺序执行。

来自分类Dev

执行AsyncTask时,Android共享首选项错误?

来自分类Dev

JavaScript执行顺序错误

来自分类Dev

在android中选择文件后找不到文件错误

来自分类Dev

Android并行执行多个AsyncTask

来自分类Dev

MySQL优化器在查询中选择错误的表顺序

来自分类Dev

在mysql中选择大量插入

来自分类Dev

错误:请在Android Studio 2.0中选择Android SDK

来自分类Dev

从执行块中选择?

来自分类Dev

异步等待错误的执行顺序

来自分类Dev

在Android Studio中选择文本后自动插入心情

来自分类Dev

从多列和顺序中选择数据

来自分类Dev

AsyncTask不执行onProgressUpdate Android

来自分类Dev

Android AsyncTask:执行doInBackground()时发生错误

来自分类Dev

Sleep()以“错误”的顺序执行。

来自分类Dev

循环内AsyncTask中的执行顺序

来自分类Dev

在DBHelper中选择AsyncTask吗?

来自分类Dev

从表中选择要插入另一个表,但出现类型错误

来自分类Dev

执行时出现Android AsyncTask错误

来自分类Dev

jQuery从插入的html中选择

来自分类Dev

Android:AsyncTask RecyclerView错误;

来自分类Dev

插入...在MySQL中选择

来自分类Dev

在闪亮的应用程序中选择多个输入时,为什么错误取决于选择输入的顺序?

来自分类Dev

从表 A 的 2 列中选择值对并将其以随机顺序插入另一个表 B

来自分类Dev

在android中选择查询错误

来自分类Dev

Android AsyncTask:“执行 doInBackground() 时发生错误”