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

时间:2015-08-24 00:58:08

标签: android android-activity runnable android-handler

我试图在用户没有与应用程序交互2分钟时写入文件。目前我正在进行基本活动,我已经覆盖了onUserInteraction方法。在此方法中,浮动时间变量被重置并且onResume I用当前时间减去时间以检查是否已经过了两分钟。这很好但有时很疯狂。第二种方法是使用Handler的postDelayed方法并启动一个线程。这非常有效,但不包括应用程序进入后台或设备进入睡眠时的情况。有办法覆盖所有这些情况。艾夫研究了很多。还遇到了Wakeful Intent服务,但读到它很贵。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

  

有没有办法涵盖所有​​这些案件。

是。 ......而且价格昂贵。唤醒手机,每2分钟就会疯狂地耗尽电池。

也就是说,您的问题的答案是您需要使用AlarmManager,可能与WakefulIntentServiceWakefulBroadcastReceiver一致。创建PendingIntent并安排每2分钟发送一次。