【发布时间】:2015-04-24 08:25:04
【问题描述】:
所以我有这个列表片段,它显示来自本地数据库的数据。本地数据库来自远程服务器。所以这个过程很像
- 从服务器获取数据并插入数据库。
- 从数据库中获取数据并设置为适配器。
-
显示数据。
public void onFragmentViewCreated(ListFragment fragment, Activity activity){ mDialog = new ProgressDialog(this); mDialog.setMessage("Loading Feed"); mDialog.setCancelable(false); mReminderList = new ArrayList<Reminder>(); final ListFragment mFragment = fragment; final Activity mActivity = activity; mHelper = new ReminderHelper(this); new AsyncTask<Void, Void, List<Reminder>>(){ @Override protected void onPreExecute(){ // getting data from server mHelper.fetchFeed(); // show dialog showDialog(); } @Override protected List<Reminder> doInBackground(Void... params){ // getting data from database mReminderList = mHelper.getFeed(); return mReminderList; } @Override protected void onPostExecute(List<Reminder> reminders){ mFeedAdapter = new FeedAdapter(mActivity, reminders); mFeedAdapter.notifyDataSetChanged(); mFragment.setListAdapter(mFeedAdapter); // hide dialog and show the data hideDialog(); } }.execute(); }
我的代码有效。但问题是,在我重新启动活动之前,listfragment 不显示数据。 (并且没有出现进度对话框)。我想要实现的是 listfragment 在数据库更新后立即显示数据(在从服务器获取数据时带有进度对话框)。提前谢谢..
【问题讨论】:
-
尝试在onResume方法执行AsyncTask
标签: android android-fragments android-listview android-sqlite