繁重工作的异步任务替代方案(在UI中添加大量片段)



我获取两个给定日期之间的所有日期,然后为其间的每个日期创建片段。问题是,当我使用Asynctask并将该方法放入doinbackground时,有时它有效,有时它不起作用。

特别是当我打开包含来自另一个活动的活动的异步任务时。但在活动内部点击按钮时,它可以使用进度条。

public class WaitForLoad extends AsyncTask<String, Integer, String>{
@Override
protected void onPreExecute() {
super.onPreExecute();
pro_bar.setVisibility(View.VISIBLE);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
pro_bar.setVisibility(GONE);
}
@Override
protected String doInBackground(String... strings) {
get_con_fro_sta_to_end(dat_ran_sta, dat_ran_end);
return null;
}
}

因此,根据Asynctask文档,它应该是3秒。但如果我在该方法中投入一整年,大约需要8秒才能加载。

那么,是否有任何通过Asynctask的工作,或者你能给我一个替代的例子吗?比如使用一个处理程序

我认为您正在从">get_con_fro_sta_to_end(("方法更改Interface。。。这在后台线程中是不允许的,然后应该以某种方式进行更改。

AsyncTasks具有">void onProgressUpdate((",用于每次从">doInBackground(("调用">1publishProgress(("时在UiThread/MainThread中执行代码。

DoInBackground((不应触摸界面,而应使用">onPostExecute(("(在UiThread/MainThread中运行代码(准备要显示的数据/事物

最新更新