Java 如何向不使用';输入申请超过2天?

Java 如何向不使用';输入申请超过2天?,java,android,firebase,notifications,Java,Android,Firebase,Notifications,我没有自己的服务器,客户端也不需要服务器。我可以用direbase通知来做吗?我将如何计算上一次用户会话的amny天数 您可以使用firebase发出推送通知 在这种情况下,您没有任何服务器来发出推送通知并跟踪最后一个用户会话,我认为您可以遵循以下步骤: 使用本地通知(非推送通知)通知用户 将用户会话存储到共享首选项 创建后台服务以根据存储的最后一个会话触发本地通知。 但是你应该对Android上的通知有一个清晰的认识,以了解它是如何工作的 您可以使用firebase发出推送通知 在这种情况

我没有自己的服务器,客户端也不需要服务器。我可以用direbase通知来做吗?我将如何计算上一次用户会话的amny天数

  • 您可以使用firebase发出推送通知
  • 在这种情况下,您没有任何服务器来发出推送通知并跟踪最后一个用户会话,我认为您可以遵循以下步骤:
    • 使用本地通知(非推送通知)通知用户
    • 将用户会话存储到共享首选项
    • 创建后台服务以根据存储的最后一个会话触发本地通知。 但是你应该对Android上的通知有一个清晰的认识,以了解它是如何工作的
  • 您可以使用firebase发出推送通知
  • 在这种情况下,您没有任何服务器来发出推送通知并跟踪最后一个用户会话,我认为您可以遵循以下步骤:
    • 使用本地通知(非推送通知)通知用户
    • 将用户会话存储到共享首选项
    • 创建后台服务以根据存储的最后一个会话触发本地通知。 但是你应该对Android上的通知有一个清晰的认识,以了解它是如何工作的
  • --------------------------------新答案------------------------------------

    您应该能够使用Firebase控制台执行此操作。创建云消息时,您可以在“目标”部分“上次应用参与”中选择,并选择希望消息发送给所有1天内未参与应用的人。

    之后,您在计划中设置希望它是一个重复的活动,并将其设置为“每天”在中午12点进行,并设置希望每个用户只获得一次。现在你有了一个活动,每天中午12点检查1d内没有在应用程序中的人,并将活动发送给他,但只发送一次,以避免每天向同一个人发送垃圾邮件。

    --------------------------------旧答案-----------------------------------

    例如,您可以在应用程序中创建一个DailyJob,该DailyJob可以自己检查自上次会话激活以来的天数并创建本地通知,或者您可以使用该DailyJob发送自定义属性“自上次登录以来的天数”,并为离线2天、离线7天设置不同的活动,在Firebase中离线31天等

    要轻松创建日常作业,您可以使用Evernote Android作业库。

    -------------------------------------新答案------------------------------------

    您应该能够使用Firebase控制台执行此操作。创建云消息时,您可以在“目标”部分“上次应用参与”中选择,并选择希望消息发送给所有1天内未参与应用的人。

    之后,您在计划中设置希望它是一个重复的活动,并将其设置为“每天”在中午12点进行,并设置希望每个用户只获得一次。现在你有了一个活动,每天中午12点检查1d内没有在应用程序中的人,并将活动发送给他,但只发送一次,以避免每天向同一个人发送垃圾邮件。

    --------------------------------旧答案-----------------------------------

    例如,您可以在应用程序中创建一个DailyJob,该DailyJob可以自己检查自上次会话激活以来的天数并创建本地通知,或者您可以使用该DailyJob发送自定义属性“自上次登录以来的天数”,并为离线2天、离线7天设置不同的活动,在Firebase中离线31天等


    要轻松创建日常作业,您可以使用Evernote Android作业库。

    这很简单:根本不使用Firebase或internet

    这就是您想要做的:每次用户登录到您的应用程序时,从
    onResume
    开始创建48小时(2天)的警报,并取消以前的任何警报。或者在
    onResume
    期间取消以前的报警,并在
    onPause
    中创建一个新的报警

    然后


    每次用户打开你的应用程序时,它都会将本地通知推回。当他们两天不使用它时,他们将在之前使用它的时间收到通知。

    这很简单:根本不使用Firebase或internet

    这就是您想要做的:每次用户登录到您的应用程序时,从
    onResume
    开始创建48小时(2天)的警报,并取消以前的任何警报。或者在
    onResume
    期间取消以前的报警,并在
    onPause
    中创建一个新的报警

    然后

    每次用户打开你的应用程序时,它都会将本地通知推回。当他们两天没有使用它时,他们将在之前使用它的时间收到通知。

    我可以使用direbase通知吗

    是的,您可以使用云功能代码

    只需在向数据库添加新通知后触发事件

    我下面的代码在新通知添加到db后触发事件,并查找超过24小时的帖子。您可以使用它并在48小时内更换它

    代码工作如下:

  • 将数据添加到数据库后触发事件
  • 1.检查数据库中是否有早于24小时的旧通知

    2.检索并删除(通过将其值更改为null)

    最重要的部分是如何计算48小时(即2天)

    附言:这仍然是24小时。我会在找到转换方法48小时后更新答案

    const yesterday = Date.now() - 86400000;
    
    编辑
    17280000
    是两天前(24小时)的

    现在,从2天前减去当前日期,并与通知日期进行比较

    “我可以用direbase通知来完成吗?”

    是的,您可以使用云功能代码

    只需在向数据库添加新通知后触发事件
    const yesterday = Date.now() - 86400000;
    
    const yesterday = Date.now() - 172800000;