我获取两个给定日期之间的所有日期,然后为其间的每个日期创建片段。问题是,当我使用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中运行代码(准备要显示的数据/事物