-1

我需要使用 Xml Web 服务将图像和视频等数据上传到服务器。我可以在 Android 中使用异步任务上传,但我需要在后台将所有数据上传到服务器,这意味着不应该显示任何进度条。

所以我认为使用服务来实现同样的目标,使用服务是正确的方法吗?我如何将活动转化为服务。还有其他方法可以实现这一目标吗?

我在我的代码下面写了异步任务的按钮单击事件:

  UploadDataInBackground uploader = new UploadDataInBackground();
  uploader.execute(ReplyForm.this, true, replyform);    // it is asynch class
4

3 回答 3

1

您应该在 AsyncTask 中继续执行此操作。如果您不希望显示进度对话框,请简化、删除或注释掉该部分代码。它应该在你的onPreExecute() 和onPostExecute() 中。

于 2012-08-28T11:27:24.550 回答
0

您可以使用 ResultReceiver 来完成。我制作了一个应用程序,我将大型视频上传到服务器并使用了这样的东西:

public class MyResultReceiver extends ResultReceiver {

    public final String TAG = getClass().getSimpleName();
    private Receiver mReceiver;

    public TmResultReceiver(Handler handler) {
        super(handler);
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void onReceiveResult(int resultCode, Bundle resultData) {
        // TODO Auto-generated method stub
        Log.d("MyResultReceiver", "onReceiveResult");
        if( mReceiver != null ){
            mReceiver.onReceiveResult(resultCode, resultData);
        }
    }

    public void setReceiver(Receiver receiver) {
        //Log.d("MyResultReceiver", "setReceiver");
        mReceiver = receiver;
    }

    public interface Receiver {
        public void onReceiveResult(int resultCode, Bundle resultData);
    }   

}
于 2012-08-28T11:55:29.977 回答
0

只需实现您自己的Service,请参阅此帖子以使用Services, but you must implement your own uploadService`下载文件,使用 Android 下载文件,并在 ProgressDialog 中显示进度

于 2012-08-28T11:57:50.600 回答