2

这个问题与我提出的一个现有问题有关。我虽然会问一个新问题,而不是回答另一个问题。

“我在一个 Activity 中有多个 Handler。” 为什么?如果您不想要复杂的handleMessage()方法,请使用post()(onHandlerView) 将逻辑分解为单个Runnables. 多重Handlers让我紧张。— CommonsWare

我是安卓新手。我的问题是 - 在一个活动中拥有多个处理程序是一个糟糕的设计吗?

这是我当前实现的草图。

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

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

用户可以通过点击视频视图来关闭视频视图。我为此使用了第三个处理程序。

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

谢谢。

4

1 回答 1

3

正如我在之前的评论中所写,我不会为此使用多个 Handler 对象。

关于 UDP 套接字线程,您可以Handler使用现有post()的.MapViewRunnablerunOnUiThread()MapActivity

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

于 2010-05-14T11:59:22.510 回答