【问题标题】:How to show 'please wait' and avoid GUI hang ?如何显示“请稍候”并避免 GUI 挂起?
【发布时间】:2011-12-18 22:45:13
【问题描述】:

我编写了包含 2 个活动的应用程序。 在第一个中 - 我需要让用户选择从图库中选择图像,然后我将此图像发送到某个服务器。 服务器返回一些结果 - 如果结果正常,我需要显示第二个活动。

我遇到的问题..

  1. 发送图像时 - 我看到屏幕变黑了... 我想避免这种情况并显示一些不错的“请稍候”的 GUI - 我该怎么做?

  2. 我想让这个发送到服务器的图像来自其他线程 - 我怎样才能从 android 做到这一点?如何定义带有回调的新线程,当线程完成时将调用它?

感谢您的帮助。

【问题讨论】:

    标签: android


    【解决方案1】:

    使用异步任务。它会是这样的:

    public void sendImage() {
        SendToServer.execute();
    }
    
    protected class SendToServer extends AsyncTask<Void, Boolean, Void>
    {    
    
        @Override
        protected void onPreExecute()
        {
            //display your dialog
        }
    
        @Override
        protected Boolean doInBackground(Void... arg0) {
    
            //code to send your image to the serve
        }
    
        @Override
        protected void onPostExecute (Boolean updateSuccess)
        {     
            //close your dialog
            //If image was successfully sent open your other activity
        }
    }
    

    【讨论】:

      【解决方案2】:

      对于第 1 个问题:

      您应该使用ProgressDialogProgressBar 来向用户显示正在执行的操作。欲了解更多信息,您可以在这里查看:http://developer.android.com/reference/android/app/ProgressDialog.html

      对于第 2 个问题: 一个好的解决方案是使用AsyncTask 进行此操作,它为您提供一组回调函数来控制操作。欲了解更多信息,您可以在这里查看:http://developer.android.com/reference/android/os/AsyncTask.html

      希望这对现在有所帮助!

      【讨论】:

        【解决方案3】:
        1. 您可以定义您的自定义布局并使用 Activity.setContentView 方法在您的 GUI 中放置您想要的任何内容。例如,您可以放置​​一个 ProgressBar 小部件。

        2. 如您所见,您使用 Java SE 编写了您的 android 应用程序。完全支持线程。

        【讨论】:

          【解决方案4】:

          这个问题有一个解决问题的答案。使用该答案作为开始,如果您对某些特定部分有任何问题,请告诉我们。

          Download image for imageview on Android

          祝你好运

          【讨论】:

            猜你喜欢
            • 2012-09-12
            • 2012-02-05
            • 1970-01-01
            • 2015-11-29
            • 1970-01-01
            • 2014-05-12
            • 2011-05-12
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多