0

我有一个要求,我需要通知非活动用户(7 天没有打开应用程序)。这意味着如果应用程序在后台运行 7 天或应用程序已被终止且 7 天未使用,则必须发送通知。

我遵循了使用AlarmManager类似于此答案的算法,但如果应用程序被杀死,则不会发送通知。我尝试BroadcastReceiver如下所示进行集成,但是当我从类中调用它时它会创建一个无限循环OnDestroy()CheckRecentRun因为它会定期自我破坏)。此外,正如我从这个答案中了解到的那样,当应用程序被杀死时,onDestroy() 并不总是被调用。

public class TimerRestarterBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
    Log.i(TimerRestarterBroadcastReceiver.class.getSimpleName(), "Service has stopped");
    context.startService(new Intent(context, CheckRecentRun.class));
}
}

有没有更简单有效的方法来做到这一点?

4

2 回答 2

0

你可以试试workmanager schedule work。我希望这能解决你的问题。要了解更多信息,请查看。核实

于 2020-07-19T08:25:10.143 回答
0

使用 WorkManager 的可能场景:

  • 您创建一个在 7 天内发送通知的任务
  • 每次用户使用应用程序将旧任务更改为 7 天后的新任务时间
于 2020-07-19T09:35:35.593 回答