2016-07-25 55 views
0

我想创建Android应用程序将使用多个活动和一个套接字的所有人。我知道我应该使用Service这将包含将连接到服务器的套接字。每个Activity将使用一些特定的请求到服务器(例如,第一个活动可以加载用户,第二个可以发送消息)。那么如何在活动间导航服务器响应(例如,用户列表将传递给第一个Activity,并且消息将被加载到第二个Activity)?通过不同的响应从服务器在不同的活动

回答

2

正如你说你正在使用Service从服务器加载数据,获取数据后,你可以处理响应取决于反应类型你火LocalBroadcast和使用动态BroadcastReceiver

参见教程为LocalBrodcast

收到的活动
+0

谢谢,我会检查这个解决方案,但我想澄清一下:所以,我将存储套接字服务它将与应用程序的实例绑定。所有活动都将是应用程序中的获取方法,它将返回服务。但是如果我的活动会在它被绑定之前请求服务呢?我怎样才能防止它?也许你可以建议一些更好的方法做这件事情? –

+0

但是如果我的Activity在绑定之前会请求服务呢?我不明白你说的究竟是什么意思? –

+0

我的意思是如果我的Activity将尝试在服务绑定之前调用服务中的方法。例如。我启动的应用程序,之后,该应用程序启动应用程序和活动,在Application :: onCreate()我有bindService(),在Activity :: onCreate()我有'服务=((AppCore)this.getApplication())。getService ();'但如果服务仍然没有绑定,那么我会在'服务'中得到空值。 –

0

您的服务可以成为您的活动的路由器。通过特定的响应(将其映射到switch-case ID),它将启动适当的Activity。已启动的活动可以绑定到服务进行聊天。

+0

如果Activity的实例已经存在? –

+0

用意向标志播放前。 [FLAG_ACTIVITY_REORDER_TO_FRONT](https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT) –

相关问题