触摸屏幕时如何在服务中获取事件?

时间:2010-10-13 14:19:38

标签: android time service screen touch

我想在Android中实现一项服务,基本上应该监控自用户没有触摸屏幕以来经过的时间。例如,用户打开Internet或Adobe Reader,开始阅读并且不再与触摸屏进行交互。 我希望我的运行服务知道用户没有触摸屏幕的时间。 我怎样才能做到这一点 ? 我正在考虑两种方法: 1.更好的一个:经过一段时间后(服务设置为在2或5或10分钟之后检查屏幕是否被触摸),服务查询一些系统对象以获取此信息。 2.不那么好(我认为这会对性能产生影响)每次触摸屏幕时都要通知服务。

请帮忙。感谢。

2 个答案:

答案 0 :(得分:3)

  

我该怎么做?

你没有。

  

经过一段时间后(服务设置为在2或5或10分钟后检查屏幕是否被触摸),服务查询一些系统对象以获取此信息。

当用户上次触摸屏幕时,没有“系统对象”会告诉您。

  

不那么好(我认为这会对性能产生影响)每次触摸屏幕时都要通知服务。

无法通知服务用户触摸屏幕。

答案 1 :(得分:1)

您无法执行此操作,因为它需要访问应用程序可用于从系统的其他部分中抓取数据的数据,否则该数据无法访问。这是一个安全问题; API没有提供一种方法来避免恶意使用。用户必须使用修改后的ROM。

在任何情况下,事件监听器都是bound to View objects;您自己的应用程序的View对象是您可以观看触摸事件的唯一内容。此外,虽然我们在这里 - Services aren't meant for UI interaction(虽然应用可以在他们运行时向他们发送信号和数据)。