向异步任务发送意图

Posted

技术标签:

【中文标题】向异步任务发送意图【英文标题】:Sending intent to asynctask 【发布时间】:2016-06-02 05:13:01 【问题描述】:

如何从 Activity 向 asynctask 发送意图?我有 2 个按钮在 asynctask 中做非常相似的事情(不同之处仅在于 postExecute 方法)。我想发送一个带有按钮 ID 的意图。

我声明了一个意图:

final Intent i = new Intent(this, ThirdActivity.class);

在每个 onClick 侦听器中,我都有以下代码:

i.putExtra("button", logoutButton.getId());

执行异步任务:

myHttpClient.execute(myParams);

myHttpClient 包含上下文和活动:

private final Context mContext;
    private final Activity act;

如何在 asynctask 中获取意图值?

【问题讨论】:

您不能将 Intent 发送到 AsyncTask。您可以做的是在 AsyncTask 中创建一个构造函数,该构造函数将 int 作为按钮 id 的参数。 好的,我知道了。感谢您的帮助! 【参考方案1】:

无需发送 Intent!您可以通过将字段添加到您的 asyncetask 来做到这一点,例如:

String button_id;

public YOUR_ASYNCETASK_CLASS_NAME (String ID)
    button_id = ID;

并在需要的地方使用它。

【讨论】:

以上是关于向异步任务发送意图的主要内容,如果未能解决你的问题,请参考以下文章

如何在异步任务中调用意图?或者如何在 onPostExecute 中开始新的活动?

创建异步任务队列 - 使用 BlockingCollection C#

在 Swift 中,如何从异步任务外壳内部更新主线程上的文本视图

如何从客户端取消异步任务

任务管理(异步任务定时任务发送邮件)

任务管理(异步任务定时任务发送邮件)