2017-08-29 25 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(); 
} 
相关问题