【问题标题】:Android Tracking Which Async HTTP Call Was ReturnedAndroid 跟踪返回了哪个异步 HTTP 调用
【发布时间】:2013-04-17 21:18:54
【问题描述】:

在 iOS 中(冷静点,我稍后会谈到 android 部分)您可以创建一个 NSURLConnction 并使用此对象来识别所进行的调用:

NSURLConnection *urlConnection = [NSURLConnection connectionWithRequest:request delegate:self];

那么在回调代码中你可以说:

if (connection == urlConnection)
{
    // this was my urlConnection    
}
else if (connection == urlConnection2)
{
    // this was my urlConnection    
}

在 Android 中,我有一个运行我的 HTTP Get 请求的 AsyncTask。我还有一个接口,在任务完成时调用DidFinishConenction 函数。但是,当它被调用时,我需要一种方法来识别是哪个调用。这样我就可以正确处理结果。

在 android 中,您可以使用以下命令调用 AsyncTask:new MyServerConnection().execute(myUrl);

有没有办法识别此任务并将其与以后类似 iOS 的另一个任务进行比较?

谢谢,

大卫

【问题讨论】:

  • 一种方法是将构造函数参数添加到您的MyServerConnection。例如,您可以通过new MyServerConnection(REQUEST_ID).execute(myUrl) 调用它,然后再决定如何处理这个特定的REQUEST_ID

标签: android httprequest


【解决方案1】:

AsyncTask 不适用于回调。相反,您覆盖任务的onPostExecute 和/或onProgressUpdate 方法。 (您可以从这些方法中进行自己的回调。)您可以简单地使用== 来比较MyServerConnection 对象。或者,您也可以将 MyServerConnection 设计为具有标识符字段(如果您愿意,它可以自动生成,或者作为构造函数参数接收)并使用它进行比较。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多