当前位置: 首页 > 知识库问答 >
问题:

从asynctask更新CursorAdapter

丁嘉
2023-03-14

我在通知CursorAdapter数据已更改时遇到问题。

    public class MyListFragment extends ListFragment implements LoaderCallbacks<Cursor> {

    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
            return new MyListCursorLoader(getActivity());
        }


        public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
            MyCursorAdapter adapter = new MyCursorAdapter(getActivity(),(MyCursor)cursor);
            setListAdapter(adapter);
        }

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getLoaderManager().initLoader(0, null, this);
    }

    private static class MyCursorAdapter extends CursorAdapter {

    ... some code ...

    }

    private static class MyListCursorLoader extends SQLiteCursorLoader {

    ... code ...

    }

SQLite数据库用AsyncTask更新(有公共接口,ListFragment用listener实现),我尝试用onPostExecute刷新ListAdapter,但我真的不知道如何刷新。

public class MyDownloader extends AsyncTask<Void, Void, Void> {

    public interface OnMyDownloaded {
        void onMyDownloaded();
    }


    public JSONDownloader(Context context, OnMyDownloaded listener) {

            ...code...

    }

    protected Void doInBackground(Void... params) {
            ...code...
    }


    protected void onPostExecute(Void result) {
        listener.onMyDownloaded();
    }
private class OnEventDownloaded implements OnJSONDownloaded {
    ?????
}

共有1个答案

逑俊楚
2023-03-14

您可以调用getLoaderManager().restartLoader(int id,Bundle args,loaderCallbacks callback); 它将调用onCreateLoader,因此将重新创建loader。如果我没理解错的话。

 类似资料:
  • 我想在android中从mysql数据库中检索数据,并在textview中显示 这是后台asynctask代码 }

  • 我的想法是,我启动一个异步任务,从Tweeter获取状态...在这里之前一切正常...但是当我遇到一些特定的tweets时,我需要用服务器上的一些信息来修改它们,这里我将进行另一个网络操作,因为我需要等待,直到我从服务器上获取信息,我做: 这是从doInBackground()方法中的allready启动的AsyncTask启动的... 我知道我可以在AsyncTask中添加方法并在doInBac

  • 我有一个类SomeActivity扩展了BaseListActivity。BaseListActivity扩展了ListActivity和所有工作的功能。 但当列表必须更新时,我使用AsyncTask使用远程服务器调用,该调用声明如下: 在那里,有一行可以像这样更新列表: 但这条线似乎起不到什么作用。 有什么不同之处可以让它发挥作用吗? 但例外情况并不准确。我能解决主机问题。在我添加BaseLis

  • 我看了其他问题,但我无法澄清从另一个任务调用一个任务的疑问,我有以下代码: parseJSON是一个任务,当我运行程序时,它什么也不做,甚至不调用任务,这就像Android为了安全而忽略的一样。

  • 问题内容: 已更新:(请参见下文)我已经环顾了几天,却找不到直接的答案。有人说有可能说一些话来完成某些说不是。我对此感到疯狂。 我想要的只是让AsyncTaskTask向外部类显示进度条。为此,我传递了您在主类中看到的上下文。但是无论我尝试什么我都会得到。 工作代码示例表示赞赏。谢谢 顺便使用Android 2.2。 主要: AsyncClass.java 更新: 我有一个后续问题:使用上述代码,

  • 我想知道ehcache是否有办法检测数据库更新/插入(spring/java,hibernate web应用程序),并使用数据库中的当前(最新)数据刷新其缓存。如果没有,检测数据库更新的最佳方法是什么,以保持与缓存和数据库之间的数据同步?