2012-06-15 46 views
0

我正在爲android創建一個xmpp聊天客戶端。與asmack相關的一切都已完成,我可以在主要活動中檢索並顯示好友列表。我也能夠接收來自朋友的聊天消息。我無法將來自聊天窗口的數據發送到該服務。以便我可以回覆並向我的朋友發送聊天消息。我已經看過一些例子,但沒有人有我想要的。請注意,我無法使用onbind方法,因爲該服務沒有特別綁定到任何活動,但一些活動可以將數據發送到服務。 合理的解釋會很好。如果有人知道一些代碼示例,這確實很棒。 當xmpp連接收到聊天消息時,我還需要從服務更新聊天窗口。安卓在活動與服務之間交換數據

在此先感謝

回答

0

你必須在你的service.OnStart方法中覆蓋onStart方法,你可以獲得Activity的意圖。如果您想將ArrayList從活動傳遞到服務,則可以將您的數組列表轉換爲數組。

在你活動

Intent intent=new Intent(ActivityName.this,Service.class);   
Bundle b=new Bundle() 
b.putStringArray("Array", your_array) 
intent.putExtras(b); 
startService(intent); 

在您服務

public void onStart(Intent intent, int startid){ 
    super.onStart(intent, startid); 
    Bundle b=intent.getExtras(); 
    String[] Array = b.getStringArray("Array"); 
} 
+0

你好,謝謝你的回覆。但該活動已在Android啓動時開始並將繼續運行。每當有些聊天窗口活動發送這個意圖時,每次都會調用這個onstart方法嗎?同時還會出現多個聊天窗口,所以我不清楚onstart方法何時會在活動生命週期中被調用 – navraj

0

您可以定義一個BroadcastReceiver到服務,可以sendBroadcast任意數量的活動信息,還可以定義廣播接收到的活動,這可能是聽取服務發送的消息。

+0

確定。我這樣做了,它解決了。謝謝 – navraj