1

我有一个扩展 BroadcastReciever 的类和另一个扩展 AsyncTask 的类

我想要它,以便当它收到一条短信时,它会使用“AsyncTask-extended”类启动一个计时器。
在 30 秒之后,假设手机一直处于空闲状态或在整个 30 秒内没有收到任何用户输入,它将运行一个函数。
否则,它将停止计时器。

我已经将计时器部分关闭(尽管它会随机地过早停止)
现在我一直在弄清楚如何检查计时器运行时是否有任何用户输入。

有人可以告诉我如何检查所述用户输入吗?

4

2 回答 2

1

所以基本上你需要听 ACTION_SCREEN_ON 广播意图。

实现它的步骤:

1) 为 SMS 设置 BroadcastReceiver。我们称之为 SMSBroadcastReceiver。

2)在您的 SMSBroadcastReceiver.onReceive 方法上,您必须做两件事:

2.1) 使用AlarmManager安排未来执行您的功能。无需使用 AsyncTasks。

2.2)注册一个新的BroadcastReceiver来监听ACTION_SCREEN_ON事件。此接收器的实现应取消在步骤 2.1 上安排的操作。

此外,请考虑仅在ACTION_SCREEN_OFF上注册 SMSBroadcastReceiver

于 2012-11-16T18:48:53.160 回答
0

当手机空闲时,您当前活动的 onStop() 方法将被调用。覆盖此方法并在调用它时执行您想要的操作。当手机从空闲状态恢复时,方法 OnResume() 和 onRestart() 将被调用,您也可以覆盖它们。在此处了解有关活动生命周期的更多信息:http: //developer.android.com/reference/android/app/Activity.html

于 2012-11-16T18:38:26.677 回答