Android 跟踪所有触摸事件

Android 跟踪所有触摸事件,android,android-activity,touch-event,rootview,Android,Android Activity,Touch Event,Rootview,形势 我想在我的应用程序中实现超时。如果用户在2分钟内未触摸屏幕,将显示一个不活动片段 到目前为止我得到了什么 我正在使用自定义的应用程序实现应用程序来跟踪活动生命周期。ActivityLifecycleCallbacks。这样,我就知道哪个活动当前位于顶部,并且可以访问其碎片管理器,在超时时显示我的不活动碎片。后台线程会不断检查上次检测到的触摸时间是否超过2分钟 问题 我不知道如何检测活动中发生的每一次触摸。我尝试将OnTouchListener添加到activity.getWindow().

形势
我想在我的应用程序中实现超时。如果用户在2分钟内未触摸屏幕,将显示一个不活动片段

到目前为止我得到了什么
我正在使用自定义的
应用程序
实现
应用程序来跟踪活动生命周期。ActivityLifecycleCallbacks
。这样,我就知道哪个
活动
当前位于顶部,并且可以访问其
碎片管理器
,在超时时显示我的不活动
碎片
。后台
线程
会不断检查上次检测到的触摸时间是否超过2分钟

问题
我不知道如何检测活动中发生的每一次触摸。我尝试将
OnTouchListener
添加到
activity.getWindow().getDecorView().setOnTouchListener()
,但只有在触摸decorview时才会调用它。例如,如果触摸了顶部的按钮,我的听众不会得到通知
activity.getContentScene()'为我返回null,因此我也无法访问根
ViewGroup`这样

问题

如何检测活动或整个应用程序上发生的任何触摸?

覆盖活动中的dispatch touch事件

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    Rect viewRect = new Rect();
    view.getGlobalVisibleRect(viewRect);

//or 

  int x= ev.getRawX();
     int y= ev.getRawY();


         if(/*check bounds of your view*/){
          // set your views visiblity to gone or what you want. 
         }
      //for prevent consuming the event.


    return super.dispatchTouchEvent(ev);
}

您是否尝试覆盖活动的方法dispatchTouchEvent(MotionEvent ev)?@TimothyWinters的可能副本无法解决我的问题。@Subzero我无法访问所有活动的源。我需要在不编辑任何活动源的情况下实现它。我没有访问我应用程序中所有活动的权限。我需要在不编辑任何活动源的情况下实现它的泛型。使基本活动覆盖其中的此方法,并使用基本活动扩展所有活动,或者可以在不同的类中创建一个帮助器静态方法,在该类中可以编写逻辑并从任何您想要的位置访问它。我无法更改项目中所有活动的来源。因此,我无法调整我所有活动的dispatchTouchEvent方法。如果您能找到一种方法,请发布答案