如何使用意图传递处理程序

Posted

技术标签:

【中文标题】如何使用意图传递处理程序【英文标题】:how to pass handler using intent 【发布时间】:2010-09-17 03:11:18 【问题描述】:

有 2 个活动 A 和屏幕 在 A Activity 中,我制作了处理程序并希望将其传递给屏幕活动

Handler error_handler = new Handler() 
public void handleMessage(Message msg) 
;

Intent loginButton_intent = new Intent(A.this, Screen.class);
loginButton_intent.putExtra("URL", URL);
loginButton_intent.putExtra("IP_Addres", dvr_login_data.IP_Addres);
loginButton_intent.("HAND", error_handler); <- but this code is error 

我怎样才能通过处理程序? 请热情回答

【问题讨论】:

您能否更具体地说明您要做什么。我有一种感觉,你正在尝试以不寻常的方式做一些常见的事情。如果您想从类 Screen 访问类 A 的功能,那么还有其他方法可以做到这一点,然后将 Handler 放入意图中。 看到这个答案:[android 将服务传递给处理程序][1] [1]:***.com/questions/1252246/… 有点晚了,但希望它有所帮助 看到这个答案:[android 传递服务 a ha][1] [1]:***.com/questions/1252246/… 看到这个答案:[android 传递服务 a ha][1] [1]: ***.com/questions/1252246/… 有点晚了,但希望它有所帮助 【参考方案1】:

还在寻找答案? 我有同样的问题,通过谷歌找到了这个问题,所以其他人可能也会出现。

无论如何,我在 Android 文档中找到了解决在服务和活动之间使用处理程序的问题的解决方案。只需查看此处的 Remote Messenger 服务示例:Remote Messenger Service Sample

基本上,他们使用信使作为服务中本地处理程序的客户端接口。

问候, 迈克尔

【讨论】:

【参考方案2】:

好吧,为了简短起见,您不能...Handler 既不实现 Serializable 也不实现 Parcelable,因此不能将其作为 extra...使用 Intents 传输的对象必须遵循其中一个那些协议。

猜测 我想,有一个替代方法是创建一个Service 来充当中间人。但这需要一些测试。

【讨论】:

【参考方案3】:

不能直接通过Activity的Extras传递Handler,但是可以传入Messenger(handler)。

【讨论】:

你能澄清一下吗?

以上是关于如何使用意图传递处理程序的主要内容,如果未能解决你的问题,请参考以下文章

当我使用 Serializable 出错时,如何使用意图传递自定义对象列表

如何正确地将独特的附加内容传递给待处理的意图?

如何使用意图传递接口

如何选择处理意图的服务

如何将不可序列化的对象传递给意图服务?

在两个活动之间使用相机图像处理意图并将其传递给 Google Maps API 上的标记不起作用