2016-01-24 80 views
0

我有一個關於足球/足球的應用程序,我使用API​​來獲取關於比賽的信息,我需要一種方法來在此API中添加目標時進行實時通知它們具有JSON格式。通過JSON格式實時通知android

+0

你能發表一些代碼嗎? 你試過'NotificationCompat'嗎? – gilgil28

+0

我沒有爲此編寫任何代碼,但我需要一種可以在此情況下使用的方法 – Shivo

+0

如果您在解決問題時遇到任何問題,將使用StackOverflow。至少先嚐試 –

回答

0

,看看谷歌雲消息(GCM)服務,它正是爲此而設計的。如果使用gcm不可行,則需要設置重複警報,但不會像gcm那樣精確。但我強烈建議去gcm。這裏有一個供您參考的鏈接。 GCM dev docs

對於無法訪問後端源代碼的情況,另一種解決方法是開發一種中間層類型的Web服務,該服務不斷輪詢您的後端並使用gcm來提醒客戶端。至少你不會浪費用戶的系統資源。

0

這是你如何彈出一個通知:

Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 

     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.drawable.logo_notification) 
       .setContentTitle(title) 
       .setContentText(body) 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .setVibrate(new long[] { 200, 200, 200}) 
       .setContentIntent(pendingIntent); 

     NotificationManager notificationManager = 
       (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

     notificationManager.notify(id, notificationBuilder.build()); //id is the notification id, if you use the same id, the notification will override the previous 
+0

謝謝,但我的問題是如何在API請求中的數據發生更改時在特定時間彈出此通知 – Shivo

+0

您有聽衆嗎?你怎麼知道數據已經改變? – gilgil28

+0

數據根據比賽中的事件而變化,我是否應該每隔一分鐘調用一次該請求以瞭解是否發生了任何更改或者有任何方法可以做到這一點? – Shivo

0

爲了實現該功能,

  1. 使用服務經常(也許一次5分鐘)查詢有關比賽的信息。
  2. 如果您有任何更新,請向用戶顯示通知。

要顯示通知:

PendingIntent pi = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(), 0); 
Notification notification = new NotificationCompat.Builder(getApplicationContext()).setTicker("Ticker Text").setSmallIcon("Icon").setContentTitle("Title").setContentText("Content Text").setContentIntent(pi).setAutoCancel(true).build(); 
           NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
           notificationManager.notify(0, notification); 

欲瞭解更多信息,如果您有機會獲得你的後端Web服務代碼中使用此鏈接 here

0

你真正想要做的是有一個Receiver將運行並檢查更新。對於實時更新,我會使用Socket。

這幾乎取決於你的服務器。