Android监听应用程序中的所有事件

问题描述

| 我想听电话上的所有用户事件,例如
onTouch
onClick
onMenuItemClicked
等。 为此,我制作了一个扩展活动的超类,所有活动都从该类扩展。
public class TopActivity extends Activity {

}


public class screen1 extends TopActivity {

}
为了侦听事件,我已经在超类中实现了侦听器功能,例如
onTouch()
onClick()
onMenuOpened()
等。所有这些调用相同的函数,该函数具有应在发生任何事件时运行的代码。 问题是我必须实现每个侦听器。有一个更好的方法吗?我只想在应用程序中有任何用户事件时运行同一段代码。     

解决方法

        没有OnEventListener接口。您将需要实现您想听的每个人。 您可以这样操作:
public class TopActivity extends Activity implements OnClickListener,OnTouchListener,OnKeyListener,OnLongClickListener /*etc*/ {

  public void onClick() {
    doSomething();
  }

  public boolean onKey(View v,int keyCode,KeyEvent event) {
    doSomething();
  }

  // etc
}
    ,        我们遇到了同样的问题,因此几个月前我们开发了Android HCI Extractor。它被用来跟踪和监视多模式应用程序中的用户和系统交互事件(例如,触摸,按键,滚动,系统提供的元素数量等)。 集成和使用非常容易。在教程中,您可以看到只需要几行代码。此外,使用此解决方案,您不必实现所有侦听器;您只需要将代码添加到/android.hci.extractor/src/org/mmi/facades/YourFacade.java类中的方法中。 这里的链接:  -Android HCI提取程序代码:http://code.google.com/p/android-hci-extractor/  -MIM项目(包括有关工具集成和使用的教程):http://www.catedrasaes.org/trac/wiki/MIM 希望对您有帮助!!     ,        您可以重写Activity类中的一些方法,这些方法可能会有所帮助。当我必须拦截所有视图控件的所有事件以重置空闲超时倒计时时,使用了此方法。听起来您类似地需要广泛地处理所有事件,所以这可能正是您所需要的: dispatchTouchEvent() dispatchKeyEvent()