2016-07-25 49 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) –

相關問題