警报片段 - ContentProvider,Handler还是Service?

时间:2014-01-28 09:12:12

标签: android android-service android-contentprovider android-handler

我正在做一个应用程序,它有一个线程总是在特定的UDP地址/端口上听到自定义消息传递协议。这些需要传递给相应更改UI的片段,一种情况是Maps API v2上的更新标记postition。
  对UDP的监听是遗留的,我必须实现一个在消息到达时将被调用的接口方法。

UDP --->遗产听众--->界面方法---> ????? ---> UI片段

我该怎么用?????? ? 我调查过:

  1. 服务 - 我觉得它是倒置的概念,因为片段调用服务,我只需要在消息到达时调用片段。

  2. ContentProvider - 不太适合结构化数据。

  3. 处理程序 - 不明白如何构造代码来使用它,因为我无法将处理程序传递给侦听UDP的线程,并且必须考虑接口方法。

  4. 如果有特定类型的消息到达时只能调用片段的方法,则会获得奖励积分。每个片段只对协议中消息类型的子集感兴趣。

1 个答案:

答案 0 :(得分:0)

另一种解决方案是通过获取对象的静态引用并传递数据来与UI片段进行通信 。 所以在你片段中你有一个像

这样的公共方法
public static MyFragment getInstance(){

return mFragment;
}

然后你有一个像

这样的方法
public void updateUI(Data data){

//code to update the UI
}

然后在接口方法中,当您从Legacy Listener接收数据时,您可以

MyFragment myFrag = MyFragment.getInstance();


myFrag.updateUI(data);

很容易。

否则我认为更正确的方法是使用Messenger和Handler。