代码之家  ›  专栏  ›  技术社区  ›  Soumya Simanta

Android多处理器设计

  •  2
  • Soumya Simanta  · 技术社区  · 14 年前

    此问题与 existing question 我问。我想我会问一个新问题,而不是回答另一个问题。

    “我在一个活动中有多个处理程序。”为什么?如果你不想要复杂的 handleMessage() 方法,然后使用 post() (上) Handler View )把逻辑分解成个体 Runnables . 倍数 Handlers 让我紧张。_

    我对Android不熟悉。我的问题是——在一个活动中有多个处理程序是一个糟糕的设计吗?

    这是我当前实现的草图。

    我有一个 mapActivity 创建一个数据线程(一个监听数据的UDP套接字)。我的第一个处理程序负责将数据从数据线程发送到活动。

    在地图上我有一堆“动态”标记 refreshed 经常。其中一些标记是视频标记,即如果用户单击一个视频标记,我会添加一个 ViewView 扩展了 android.opengl.GLSurfaceView 到我的地图活动,并在此新视频上显示视频。我使用第二个处理程序发送有关用户点击的标记的信息 ItemizedOverlay onTap(int index) 方法。

    用户可以通过点击视频视图关闭视频视图。我用我的第三个处理程序。

    如果人们能告诉我这种方法有什么问题,并提出更好的方法来实现这一点,我将不胜感激。

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  3
  •   CommonsWare    11 年前

    正如我在以前的注释中所写,我不会为此使用多个处理程序对象。

    对于UDP套接字线程,您可以使用现有的 Handler 或使用 post() 对你 MapView 张贴 Runnable 到主应用程序线程,或使用 runOnUiThread() 对你 MapActivity .

    关于您的“第二个处理程序发送关于用户点击itemizedoverlay ontap(int index)方法的标记的信息”, onTap() 将在主应用程序线程上调用,因此您不需要使用 处理程序 . 你的第三个也一样 处理程序 .