我需要知道用户何时没有与平板电脑/手机交互一段时间。我目前正试图通过以下方式获得这种情报:
@Override
public void onUserInteraction(){
lastInteraction = System.currentTimeMillis();
}
但是,它仅在Activity(或所述Activity中的片段)的直接交互中触发,而不是任何显示的对话框。有没有更普遍的方法来实现这一目标而不将其添加到每个对话框中?
答案 0 :(得分:2)
我通过将对话框包装到自定义布局中解决了这个问题:
public class InteractionInterceptorLayer extends LinearLayout {
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
//any actions here...
return super.dispatchTouchEvent(ev);
}
//constructors...
}
在布局定义中:
<com.package.InteractionInterceptorLayer xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
// layout goes here
</com.package.InteractionInterceptorLayer>