首页 文章

重工作的Asynctask替代方案(在UI中添加大量片段)

提问于
浏览
0

我得到两个给定日期之间的所有日期,然后在两个日期之间创建片段 . 问题是当我使用Asynctask并将该方法放入doinbackground时,有时它不起作用 .

特别是当我打开包含来自另一个活动的活动的Asynctask时 . 但是在按钮上单击内部活动它可以使用进度条 .

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的工作或你能给我一个示例替代方案就像使用处理程序一样 .

1 回答

  • 0

    我认为你正在从你的“get_con_fro_sta_to_end()”方法改变接口...这是不允许从后台线程,然后它应该以某种方式改变 .

    AsyncTasks有“void onProgressUpdate()" that is used to execute code in the UiThread/MainThread every time " publishProgress()" is called from " doInBackground()” .

    DoInBackground()不应该触摸接口,而只是使用“onPostExecute()”(在UiThread / MainThread中运行代码)准备要显示的数据/事物

相关问题