【问题标题】: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]:stackoverflow.com/questions/1252246/… 有点晚了,但希望它有所帮助
  • 看到这个答案:[android 传递服务 a ha][1] [1]:stackoverflow.com/questions/1252246/…
  • 看到这个答案:[android 传递服务 a ha][1] [1]: stackoverflow.com/questions/1252246/… 有点晚了,但希望它有所帮助

标签: android android-intent


【解决方案1】:

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

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

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

问候, 迈克尔

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 你能澄清一下吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      • 2020-09-30
      相关资源
      最近更新 更多