2011-12-18 31 views
0

我写了包含2个活动的应用程序。 在第一个 - 我需要给用户选择从图库中选择图像,我发送这个图像到一些服务器。 服务器返回一些结果 - 如果结果是好的,我需要显示第二个活动。如何显示'请稍等'并避免GUI挂起?

,我有问题..

  1. 发送图像时

    - 我看到屏幕变成黑色...... 我想避免这种情况,并显示一些不错的GUI“请稍候” - 我该怎么做 ?

  2. 我想让这个发送图像到服务器是从其他线程 - 我怎么能从android?如何定义新的线程与回调,将在线程完成时调用?

感谢您的任何帮助。

回答

1

对于问题号1:

应使用ProgressDialog或以示于正被执行的操作的用户一个ProgressBar。欲了解更多信息,您可以点击这里:http://developer.android.com/reference/android/app/ProgressDialog.html

关于问题号2: 一个好的解决办法是使用AsyncTask进行此项操作,让你一组的回调函数来控制操作。欲了解更多信息,你可以在这里检查:http://developer.android.com/reference/android/os/AsyncTask.html

希望这有助于现在!

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

  2. 正如你所注意到的,你在Java SE中编写了你的​​android应用程序。线程完全支持。

2

使用一个的AsyncTask。它会像这样:

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 
    } 
}