2017-08-29 40 views
-1

我想在應用關閉時發出通知。如何在應用關閉時發出通知

即時通訊新的Java和我現在不需要一個服務或使用AlarmManager。

我的想法是用一個數字做一個txt(在我的服務器上),如果是0不做notifiacion,如果是1做notificacion並讀取其他txt的所有內容並在通知中使用該文本。

我需要檢查每1小時的數字txt。

即使應用程序已關閉,我也需要這樣做。

感謝

+0

你是指推送通知還是內部通知? –

+0

您在具體問題中尋找的是AlarmManager,但我會建議您考慮通過Firebase創建推送通知服務。這樣,您的應用程序就不必繼續ping Web服務,但是隻有在需要採取行動時纔會收到通知。 – WoogieNoogie

+0

您可以使用此計劃的鬧鐘管理器每隔1小時發出一次警報,並等待一個服務類別的警報,該服務類別將每1小時自動撥打一次服務電話,現在在該服務呼叫中進行後端呼叫,並且一旦從您的文本文件使用NotificationManager生成通知 –

回答

1

你想要做什麼叫做推送消息,我建議在看火力地堡https://firebase.google.com/docs/cloud-messaging/或亞馬遜的實現。

+0

而我需要在應用程序和服務器上進行推送通知? –

+0

如果您閱讀了我鏈接的文檔,他們有一步一步的指導來設置服務器和應用程序。我相信他們甚至可以看到一個示例應用程序。 – Ben

0

服務正是你在找的東西。

  • 他們在後臺
  • 可以再次啓動運行,即使該應用程序從最近使用的應用清除
  • 可以定時,以滿足您的要求
  • 很容易實現

Here是官方文檔。 和this可以是一個很好的入門教程。

-1

您可以使用此代碼發送通知。但不要忘記這一點,onStop方法也適用於點擊home和recents按鈕。所以,只要你點擊home或者recents按鈕,就會彈出一個通知。您可以通過聆聽家中和最近的按鈕來改善此代碼。

public void onStop() { 
    NotificationCompat.Builder notificationBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(this) 
      .setSmallIcon(R.drawable.icon24) 
      .setContentTitle("App Closed") 
      .setContentText("You've closed the app") 
      .setTicker("You've closed the app") 
      .setAutoCancel(true) 
      .setLargeIcon(BitmapFactory.decodeResource(getApplicationContext().getResources(), R.drawable.icon96)) 
      .setDefaults(Notification.DEFAULT_ALL); 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 
     notificationBuilder.setPriority(Notification.PRIORITY_HIGH); 
    } 

    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.notify(0, notificationBuilder.build()); 

    super.onStop(); 
} 
相關問題