如何使用意图传递处理程序
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)。
【讨论】:
你能澄清一下吗?以上是关于如何使用意图传递处理程序的主要内容,如果未能解决你的问题,请参考以下文章