【问题标题】:Type of argument/value that is passed in a AsyncTask在 AsyncTask 中传递的参数/值的类型
【发布时间】:2020-02-16 15:55:14
【问题描述】:

关于 AsyncTasks 的 3 个简单问题。 如果我们声明这个 AsyncTask:

private class DownloadFilesTask extends AsyncTask<URL, Integer, Long>

1- 将什么类型的值传递给 doInBackground() 方法?是网址吗?

2- 将什么类型的值传递给通知任务进度的回调?

3- 什么类型的值传递给任务结束时执行的回调?

谢谢大家。剩下美好的一天

【问题讨论】:

    标签: android android-asynctask


    【解决方案1】:

    AsyncTask 分别由输入参数类型、进度参数类型、结果类型组成。 所以在你的情况下

    DownloadFilesTask extends AsyncTask<URL, Integer, Long>
    

    URL 是输入参数类型

    Integer 是进度参数类型

    Long 是结果类型

    1. 什么类型的值被传递给 doInBackground() 方法?是网址吗?

      答案:是的,它的网址

    2. 什么类型的值被传递给通知任务的回调 进展?

      答案:它的Integer

    3. 什么类型的值被传递给什么时候执行的回调 任务结束?

      答案:它的Long 值,它是预期的值 从doInBackground 返回并作为回调传递给 onPostExecute`。

    【讨论】:

    • 很好的解释朋友。非常感谢! :)
    【解决方案2】:

    异步任务使用的三种类型如下:

    • Params,执行时发送给任务的参数类型。
    • 进度,在后台计算期间发布的进度单元的类型。
    • Result,后台计算结果的类型。

    private class MyTask extends AsyncTask&lt;Params, Progress, Result&gt; { ... }

    所以,为了回答您的问题,URL 被传递给 doInBackground 并且 Long 是返回类型。

    阅读更多https://stackoverflow.com/a/6053673/5644761

    【讨论】:

    • 所以我的问题的答案是 1-URL、2-Integer 和 3-Long?
    • URL 传递给 doInBackground 并返回 Long
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 2011-06-27
    • 2012-05-29
    相关资源
    最近更新 更多