Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android片段:从数据库缓慢加载数据_Android_Database_Android Fragments - Fatal编程技术网

Android片段:从数据库缓慢加载数据

Android片段:从数据库缓慢加载数据,android,database,android-fragments,Android,Database,Android Fragments,我有一个带有列表视图的片段B。listview中的数据来自本地数据库。当我点击fragmentA中的texview时,我正在打开带有数据库数据的fragmentB。但在片段B加载之前的一小部分时间里,我可以看到片段a。FragmentB在进行数据库查询时具有异步任务。如何避免这部分秒延迟 从碎片A转到碎片B的代码 borerangeselect.setOnClickListener(new OnClickListener() { BoreRangeFragment bor

我有一个带有列表视图的片段B。listview中的数据来自本地数据库。当我点击fragmentA中的texview时,我正在打开带有数据库数据的fragmentB。但在片段B加载之前的一小部分时间里,我可以看到片段a。FragmentB在进行数据库查询时具有异步任务。如何避免这部分秒延迟

从碎片A转到碎片B的代码

borerangeselect.setOnClickListener(new OnClickListener() {
            BoreRangeFragment boreranges = new BoreRangeFragment();

            @Override
            public void onClick(View v) {

                rangeboregrade = boregradeselect.getText().toString();
                if (!rangeboregrade.equalsIgnoreCase("select")) {
                    FragmentManager fragmentManager = getFragmentManager();
                    FragmentTransaction ft = fragmentManager.beginTransaction();

                    ft.add(R.id.content_frame, boreranges);
                    FragmentChangeActivity.fragmentStack.lastElement().onPause();
                    ft.hide(FragmentChangeActivity.fragmentStack.lastElement());
                    FragmentChangeActivity.fragmentStack.push(boreranges);
                    ft.commit();

                }
            }
        });
在CTVityCreated()上创建碎片b


如果您使用的是SQLite,那么最好使用LoaderManager,它们在使用db时非常易于使用且非常高效

public class SampleActivity extends Activity implements LoaderManager.LoaderCallbacks<Cursor> {

  public Loader<Cursor> onCreateLoader(int id, Bundle args) { ... }

  public void onLoadFinished(Loader<Cursor> loader, Cursor data) { ... }

  public void onLoaderReset(Loader<Cursor> loader) { ... }

  /* ... */
}
公共类SampleActivity扩展活动实现LoaderManager.LoaderCallbacks{
公共加载器onCreateLoader(int-id,Bundle-args){…}
public void onLoadFinished(加载程序,光标数据){…}
public void onLoaderReset(加载程序){…}
/* ... */
}
以下是android文档的url,您可以参考该url了解更多信息,


希望这将帮助您解决您的问题

您可以使用onPreExecute方法中的进度对话框,并将其隐藏在doInBackground()方法中或查询结束的位置。 希望它能起作用

public class SampleActivity extends Activity implements LoaderManager.LoaderCallbacks<Cursor> {

  public Loader<Cursor> onCreateLoader(int id, Bundle args) { ... }

  public void onLoadFinished(Loader<Cursor> loader, Cursor data) { ... }

  public void onLoaderReset(Loader<Cursor> loader) { ... }

  /* ... */
}