如何在android中显示包含服务器更新数据的UI

如何在android中显示包含服务器更新数据的UI,android,Android,我正在开发一个应用程序,它将请求发送到服务器,用数据获取响应,然后用更新的数据启动主页 我采用以下方法: 在UI端创建处理程序并订阅服务 订阅服务后,通过服务向服务器发送请求 服务收到数据并更新已注册处理程序中的数据 问题: 我的观察是,我的主页正在以默认值启动,所以在订阅服务之前,Ui似乎已经启动 我想用默认值限制主页显示,当响应来自带有数据的服务器时,只有它应该显示更新的数据。 或 它应该显示“忙碌”对话框,直到主页被接收到的数据更新,比如当我们点击android手机获取天气/股票信息时,它

我正在开发一个应用程序,它将请求发送到服务器,用数据获取响应,然后用更新的数据启动主页

我采用以下方法:

  • 在UI端创建处理程序并订阅服务
  • 订阅服务后,通过服务向服务器发送请求
  • 服务收到数据并更新已注册处理程序中的数据
  • 问题: 我的观察是,我的主页正在以默认值启动,所以在订阅服务之前,Ui似乎已经启动

    我想用默认值限制主页显示,当响应来自带有数据的服务器时,只有它应该显示更新的数据。 或 它应该显示“忙碌”对话框,直到主页被接收到的数据更新,比如当我们点击android手机获取天气/股票信息时,它的行为

    那么有人可以用适当的方法来帮助你吗?如果有人能和我分享这个例子,那对我来说就太好了

    谢谢, PIK

    只需通过,它很容易在android中实现线程,也称为

    让我进一步探讨异步任务。它提供了4种方法:

  • doInBackground()-在此处执行后台任务
  • onPostExecute()-执行显示结果类型的操作
  • onProgressUpdate()-根据进度更新在UI上执行更新
  • onPreExecute()-在执行doInBackground()进程之前,执行所有需要的任务,大多数情况下,我们会显示ProgressBar(忙对话框,请稍候…文本)
  • 例如:

    private class LongOperation extends AsyncTask {
    
        @Override
        protected void onPreExecute() {
           // Things to be done before execution of long running operation. For example showing ProgessDialog
        }
    
        @Override
        protected String doInBackground(String... params) {
           // perform long running operation operation
          return null;
        }
    
        @Override
        protected void onPostExecute(String result) {
          // execution of result of Long time consuming operation
        }
    
        @Override
        protected void onProgressUpdate(Void... values) {
          // Things to be done while execution of long running operation is in progress. For example updating ProgessDialog
        }
    }
    
    现在,您可以按以下方式执行AsyncTask:

    new LongOperation().execute(params);
    

    谢谢你的回复。请您用一些实时代码示例解释一下,这样可以帮助我实现我的场景。@我已经在每个方法中提到了注释,但是让我简单地告诉您:在doInBackground()方法中执行所有长时间运行的任务(webservice调用),在onPreExecute()方法中显示对话框(等待消息的进度条),并在onPostExecute()方法中更新UI显示目的。