1

ユーザーがホーム画面でアプリのアイコンをクリックしているのか、単にデスクトップをクリックしているのかを理解する方法はありますか?

onTouchEventライブ壁紙の開発中に、機能を上書きしました

@Override
    public void onTouchEvent(MotionEvent event) {
        int action = event.getAction();
        float currentXPosition = event.getX();
        float currentYPosition = event.getY();
        Log.d(Constants.TAG_DISPLAY, "Action = " + action);
        Log.d(Constants.TAG_DISPLAY, "X = " + currentXPosition + "Y = " + currentYPosition);

        if (action == MotionEvent.ACTION_UP) {
            Log.d(Constants.TAG_DISPLAY, "FIRE Action, drawframe");
            pos[0] = Math.round(currentXPosition) + 150;
            pos[1] = Math.round(currentYPosition) - 50;
            drawFrame(true, true);
        }
        super.onTouchEvent(event);
    }

壁紙を更新するために。ただし、ユーザーがアプリケーションを開いている場合は更新したくありません。イベントまたはスーパーアクションから、ユーザーアクションを決定することは可能ですか?

4

1 に答える 1

0

ユーザーがアプリを開いたかどうかを理解するための回避策を見つけました。バックグラウンドアプリを前面に出すのではなく、オープンプロセスだけです。

public int getTotalRunningApp(){
    ActivityManager actvityManager = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE );
    List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses();
    return procInfos.size();
}


@Override
public void onTouchEvent(MotionEvent event) {           
    int runApp = getTotalRunningApp();
    Log.wtf(Constants.TAG_APP, "RunningApp = " + runApp);           
    ...
    super.onTouchEvent(event);
    runApp = getTotalRunningApp();
    Log.wtf(Constants.TAG_APP, "RunningApp = " + runApp);
    ...
}

getTotalRunningApp()実際の前後に電話をかけることsuper.onTouchEventで、実行中のアプリの数を監視し、ユーザーがアプリをタップしているのか、ホーム画面を移動しているのか、何もしていないのかを「少し」理解できます。バックグラウンドアプリでは動作しません。

于 2013-01-30T19:47:16.800 に答える