每两分钟不活动(无用户交互)采取行动

Take action for every two minutes of inactivity (no user interaction)

我正在尝试在用户 2 分钟未与应用程序交互时写入文件。目前我有基础 activity ,我已经在其中覆盖了 onUserInteraction 方法。在这个方法中,浮动时间变量被重置,onResume 我用当前时间减去时间来检查是否已经过去了两分钟。这很好用,但有时表现得很疯狂。第二种方法是使用 Handler 的 postDelayed 方法并启动一个线程。这非常有效,但不包括应用程序进入后台或设备进入 sleep.Is 的情况,有一种方法可以涵盖所有这些情况。 ahve研究了很多。也遇到了 Wakeful Intent 服务,但读到它很昂贵。

我不知道 activity 中的跟踪方法,但有一种方法可以跟踪用户 activity。您可以在您的活动中捕获一个名为 onUserInteraction() 的回调,每次用户与应用程序进行任何交互时都会调用该回调。我建议这样做:

    @Override
    public void onUserInteraction(){
    MyTimerClass.getInstance().resetTimer();
}

如果您的应用程序包含多个活动,为什么不将此方法放在抽象超级 class(扩展 Activity)中,然后让所有活动扩展它。

Is there a way to cover all these cases.

是的。 ……而且很贵。唤醒 phone,每 2 分钟就会疯狂耗尽电池电量。

也就是说,您的问题的答案是您需要使用 AlarmManager, probably in concert with either the WakefulIntentService or the WakefulBroadcastReceiver。创建一个 PendingIntent 并安排每 2 分钟发送一次。