向异步任务发送意图
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#