我编写了包含2个活动的应用程序。 在第一个 - 我需要给用户选择从库中选择图像,我将此图像发送到某个服务器。 服务器返回一些结果 - 如果结果是OK,我需要显示第二个活动。
我遇到的问题..
发送图片时 - 我看到屏幕变黑了...... 我想避免这种情况并展示一些很好的“请等待”的GUI - 我该怎么做?
我想让这个发送图像到服务器来自其他线程 - 我怎么能从android做到这一点?如何使用将在线程完成时调用的回调定义新线程?
感谢您的帮助。
答案 0 :(得分: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
}
}
答案 1 :(得分:1)
问题1:
您应该使用ProgressDialog
或ProgressBar
来向用户显示正在执行的操作。有关详细信息,请查看此处:http://developer.android.com/reference/android/app/ProgressDialog.html
问题2:
一个好的解决方案是使用AsyncTask
进行此操作,它为您提供了一组回调函数来控制操作。有关详细信息,请查看此处:http://developer.android.com/reference/android/os/AsyncTask.html
希望现在有所帮助!
答案 2 :(得分:1)
您可以定义自定义布局,并使用Activity.setContentView方法在GUI中放置您想要的任何内容。例如,您可以放置ProgressBar小部件。
正如您所注意到的,您在Java SE中编写了自己的Android应用程序。完全支持线程。
答案 3 :(得分:1)
这个问题有一个解决问题的答案。使用该答案作为开始,如果您对某个特定部分有任何问题,请告诉我们。
祝你好运