2

我正在開發使用GCM概念的聊天類型應用程序。我成功地發送消息給我的朋友誰也註冊和使用我的應用程序。我正在將對話存儲在SQLite兩邊。意味着當發送者發送消息並且接收者接收到消息時,則對話被存儲在雙方。現在我想要什麼,如果我的'X'朋友打開聊天圖形用戶界面並向該朋友發送消息'X',並且幾秒鐘後如果新消息從同一個朋友'X'到達,那麼我可以同時更新GUI收到通知時更新當前UI

我想出了this教程,併成功更新了GUI。但我的問題是,我怎麼才能知道我目前聊天的對象是誰?意思是當消息到達時,我的GUI將被更新,但如果我收到來自其他朋友'Y'的消息,那麼GUI不應該更新(因爲聊天GUI與朋友'X'的對話打開)。它應該在通知中,當我點擊該通知時,只有在與該'Y'朋友聊天時才應該更新。我怎樣才能做到這一點?我還附帶了這段代碼,以瞭解哪些活動處於頂端。

ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); 
// get the info from the currently running task 
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1); 
Log.d("topActivity", "CURRENT Activity : " + taskInfo.get(0).topActivity.getClassName()); 
ComponentName componentInfo = taskInfo.get(0).topActivity; 
componentInfo.getPackageName(); 

但沒有得到如何解決問題。幫助將不勝感激。

回答

0

當前聊天頁面與用戶x或y關聯。每當您收到gcm服務的消息時,您可以更新(如果聊天是與當前聊天頁面相同的用戶),否則,您可以更新當前活動,說明其他用戶發送了消息,或者如果應用程序未運行或處於任何活動狀態,通知。共享首選項可用於設置當前用戶的唯一ID和當前活動的詳細信息,以便您的gcm接收器知道該怎麼做。

+0

亞朋友...但問題是如何知道誰是當前的發件人和接收器? –

+1

將該信息放入消息{from:'x',msg:'blah blah'}。你必須知道你在和誰談話? –

+0

是的,讓我告訴你一件事,我也通過這個消息傳遞了這個名字。所以現在當收到消息時,首先它將被存儲在接收端的數據庫中。所以我想我需要檢查條件並將該消息名稱與最後一次輸入db進行比較。如果兩個r相同,那麼GUI應該更新,否則不是......我是正確的阿比亞? –

0

你可以創建1個方法,它是fillListchat()。當消息到達時,那個特定方法調用線程並在handler.so中設置GUI,每當你打開你的朋友列表像x,y或z那麼這個列表將會我希望它對你有用...

+0

可以詳細說明@dipali嗎? –

+0

你說什麼?..... – dipali

+0

我在說,你可以詳細解釋你的想法..我沒有得到你想解釋的。謝謝你... –

相關問題