11

ユーザーがタブレット/電話を一定期間操作していないことを知る必要があります。私は現在、以下を使用してこのインテリジェンスを取得しようとしています:

@Override
public void onUserInteraction(){ 
    lastInteraction = System.currentTimeMillis();
}

ただし、表示されたダイアログではなく、アクティビティ (またはそのアクティビティのフラグメント) の直接的な対話でのみ起動します。これをすべてのダイアログに追加せずにこれを達成するためのより普遍的な方法はありますか?

ドキュメンテーション

4

1 に答える 1

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>
于 2014-03-31T18:09:57.470 に答える