我需要检测用户何时与手机交互并在最后一次用户触摸屏幕后60秒后重新启动我的应用。有可能做那样的事吗? 它必须作为PC的屏幕服务器。
答案 0 :(得分:7)
ACTION_USER_PRESENT
是广播操作,因此您应该能够编写广播接收器来响应它并启动您的应用程序。请注意ACTION_USER_PRESENT
是
设备唤醒后用户出现时发送的(例如 键盘走了)。
我还遇到了一个example,其中广播接收器使用BOOT_COMPLETED
广播操作来启动应用程序。
答案 1 :(得分:4)
可以这样做吗?
仅当您的活动位于前台时,您才能跟踪触摸事件。您无法了解系统中其他位置发生的触摸事件。
答案 2 :(得分:1)
根据android生命周期,如果用户按下主页按钮或键盘锁定onPause将被调用。所以做这样的事情。
@Override
public void onPause()
{
super.onPause();
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
finish();
}
};
timer.schedule(task, 60000);
}
如果用户在60秒之前到达onRestart()
。
@Override
public void onRestart()
{
super.onRestart();
timer.cancel();
timer.purge();
}