我写了包含2个活动的应用程序。 在第一个 - 我需要给用户选择从图库中选择图像,我发送这个图像到一些服务器。 服务器返回一些结果 - 如果结果是好的,我需要显示第二个活动。如何显示'请稍等'并避免GUI挂起?
,我有问题..
- 发送图像时
- 我看到屏幕变成黑色...... 我想避免这种情况,并显示一些不错的GUI“请稍候” - 我该怎么做 ?
我想让这个发送图像到服务器是从其他线程 - 我怎么能从android?如何定义新的线程与回调,将在线程完成时调用?
感谢您的任何帮助。
我写了包含2个活动的应用程序。 在第一个 - 我需要给用户选择从图库中选择图像,我发送这个图像到一些服务器。 服务器返回一些结果 - 如果结果是好的,我需要显示第二个活动。如何显示'请稍等'并避免GUI挂起?
,我有问题..
- 我看到屏幕变成黑色...... 我想避免这种情况,并显示一些不错的GUI“请稍候” - 我该怎么做 ?
我想让这个发送图像到服务器是从其他线程 - 我怎么能从android?如何定义新的线程与回调,将在线程完成时调用?
感谢您的任何帮助。
对于问题号1:
应使用ProgressDialog
或以示于正被执行的操作的用户一个ProgressBar
。欲了解更多信息,您可以点击这里:http://developer.android.com/reference/android/app/ProgressDialog.html
关于问题号2: 一个好的解决办法是使用AsyncTask
进行此项操作,让你一组的回调函数来控制操作。欲了解更多信息,你可以在这里检查:http://developer.android.com/reference/android/os/AsyncTask.html
希望这有助于现在!
您可以定义您的自定义布局,并使用Activity.setContentView方法在GUI中放置任何您想要的内容。例如,您可以放置一个ProgressBar小部件。
正如你所注意到的,你在Java SE中编写了你的android应用程序。线程完全支持。
使用一个的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
}
}