Android 在收集数据后为UI线程设置值?

Android 在收集数据后为UI线程设置值?,android,user-interface,android-asynctask,Android,User Interface,Android Asynctask,这是一个理论问题 我目前正在开发一个android应用程序。我想在那里收集数据,然后编辑UI。但是当我等待完成数据收集时,我显然阻塞了UI线程() 所以问题是:如何让应用程序在不阻塞UI线程的情况下等待数据收集?带有appsymbol和进度条的加载屏幕是一个选项吗 编辑:为了说明这一点:我收集的数据分为几个小数据获取 编辑2:我正在收集来自互联网的数据 提前谢谢 您可以使用用于简单数据获取的。如果它的使用更复杂,您可以使用。如果更复杂的用法是声明一个AsyncTask,那么只需在预先执行Asyn

这是一个理论问题

我目前正在开发一个android应用程序。我想在那里收集数据,然后编辑UI。但是当我等待完成数据收集时,我显然阻塞了UI线程()

所以问题是:如何让应用程序在不阻塞UI线程的情况下等待数据收集?带有appsymbol和进度条的加载屏幕是一个选项吗

编辑:为了说明这一点:我收集的数据分为几个小数据获取

编辑2:我正在收集来自互联网的数据


提前谢谢

您可以使用用于简单数据获取的。如果它的使用更复杂,您可以使用。如果更复杂的用法是声明一个AsyncTask,那么只需在预先执行AsyncTask时显示ProgressDialog。执行耗时且应用程序冻结的操作,例如从doInBackground上的链接检索数据。在asyncTask的onPostExecute中执行检索到的post链接并关闭“ProgressDialog”。AsyncTask在与主活动不同的线程上运行,因此应用程序不会冻结

异步任务

class ClassName extends AsyncTask<String, Void, Integer> {
    protected void onPreExecute() {
        progress = ProgressDialog.show(context, "", "Loading ...",
                false, true);
    }

    @Override
    protected Integer doInBackground(String... params) {
        // Your Code
    }

    protected void onPostExecute(Integer result) {

        if (progress != null) {
            progress.dismiss();
        }
    }
}
类ClassName扩展了异步任务{
受保护的void onPreExecute(){
progress=ProgressDialog.show(上下文“,”正在加载…”,
假,真);
}
@凌驾
受保护的整数doInBackground(字符串…参数){
//你的代码
}
受保护的void onPostExecute(整数结果){
如果(进度!=null){
进步。解散();
}
}
}

声明一个AsyncTask,然后只需在预先执行AsyncTask时显示ProgressDialog。执行耗时且应用程序冻结的操作,例如从doInBackground上的链接检索数据。在asyncTask的onPostExecute中执行检索到的post链接并关闭“ProgressDialog”。AsyncTask在与主活动不同的线程上运行,因此应用程序不会冻结

异步任务

class ClassName extends AsyncTask<String, Void, Integer> {
    protected void onPreExecute() {
        progress = ProgressDialog.show(context, "", "Loading ...",
                false, true);
    }

    @Override
    protected Integer doInBackground(String... params) {
        // Your Code
    }

    protected void onPostExecute(Integer result) {

        if (progress != null) {
            progress.dismiss();
        }
    }
}
类ClassName扩展了异步任务{
受保护的void onPreExecute(){
progress=ProgressDialog.show(上下文“,”正在加载…”,
假,真);
}
@凌驾
受保护的整数doInBackground(字符串…参数){
//你的代码
}
受保护的void onPostExecute(整数结果){
如果(进度!=null){
进步。解散();
}
}
}

是关于如何在单独的线程上执行长时间运行的工作吗?或者,当单独的线程繁忙时,UI应该是什么样子?您可以使用异步任务来完成此任务,在异步任务中,您将能够处理UI线程并同时从何处收集数据?这是一个web服务吗?看,这是关于如何在一个单独的线程上执行长时间运行的工作的吗?或者,当单独的线程繁忙时,UI应该是什么样子?您可以使用异步任务来完成此任务,在异步任务中,您将能够处理UI线程并同时从何处收集数据?这是网络服务吗?看这里