用三个手指触摸后关闭Android应用程序

用三个手指触摸后关闭Android应用程序,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,当有三个手指像mac os一样触摸屏幕时,我想关闭我的应用程序。在我的应用程序中,我同时使用了碎片和视图寻呼机,但我不知道如何使用event.getAction和Action Mask 我两者都用 MotionEvent.ACTION_UP MotionEvent.ACTION_POINTER_DOWN: 但它们不起作用 使用时,会多次调用另一个动作屏蔽应用程序 int maxPointercount=0; int previousPointercount=0; public boolea

当有三个手指像mac os一样触摸屏幕时,我想关闭我的应用程序。在我的应用程序中,我同时使用了碎片和视图寻呼机,但我不知道如何使用event.getAction和Action Mask

我两者都用

MotionEvent.ACTION_UP
MotionEvent.ACTION_POINTER_DOWN: 
但它们不起作用

使用时,会多次调用另一个动作屏蔽应用程序

int maxPointercount=0;
int previousPointercount=0;

public boolean onTouch(View v, MotionEvent event) {
    int currentpointerCount = event.getPointerCount();
    System.out.println("My pointer....." + currentpointerCount);

    int action = event.getAction() & MotionEvent.ACTION_MASK;
    System.out.println("pre......."+previousPointercount);
    System.out.println("max......."+maxPointercount);

    if(maxPointercount < previousPointercount){
        maxPointercount = currentpointerCount;
    }

    previousPointercount = currentpointerCount;

    if(action==MotionEvent.ACTION_) {
       if(maxPointercount>=3){
        maxPointercount = 0;
        Toast.makeText(MyclassActivity.this,"FingerToched!!"Toast.LENGTH_SHORT).show();
        Intent intent = newIntent(MyclassActivity.this,DashboardActivity.class);
        startActivity(intent);
        finish();
        //your code that will run 1 time
       }
       maxPointercount = 0;
       previousPointercount = 0;      
    }
    return super.onTouchEvent(event);
}
这应该行得通

    @Override
    public boolean dispatchTouchEvent(MotionEvent event) {
        int currentpointerCount = event.getPointerCount();
        Log.d("hi", "My pointer....." + currentpointerCount);

        int action = event.getAction() & MotionEvent.ACTION_MASK;
        System.out.println("pre......."+previousPointercount);
        System.out.println("max......."+maxPointercount);

        if(maxPointercount < previousPointercount){
            maxPointercount = currentpointerCount;
        }

        previousPointercount = currentpointerCount;

        if(action==MotionEvent.ACTION_UP) {            
           if(maxPointercount==3){        
            finish();
            //your code that will run 1 time
           }
           maxPointercount = 0;
           previousPointercount = 0;      
        }
        return true;
        /** This worked for OP's specific case 
        return super.dispatchTouchEvent(event);
        **/
    }
这应该行得通

    @Override
    public boolean dispatchTouchEvent(MotionEvent event) {
        int currentpointerCount = event.getPointerCount();
        Log.d("hi", "My pointer....." + currentpointerCount);

        int action = event.getAction() & MotionEvent.ACTION_MASK;
        System.out.println("pre......."+previousPointercount);
        System.out.println("max......."+maxPointercount);

        if(maxPointercount < previousPointercount){
            maxPointercount = currentpointerCount;
        }

        previousPointercount = currentpointerCount;

        if(action==MotionEvent.ACTION_UP) {            
           if(maxPointercount==3){        
            finish();
            //your code that will run 1 time
           }
           maxPointercount = 0;
           previousPointercount = 0;      
        }
        return true;
        /** This worked for OP's specific case 
        return super.dispatchTouchEvent(event);
        **/
    }


我会问为什么。如果你想要OSX,那就使用Mac。我会对关闭的am应用程序感到恼火,我认为你正在做一些可怕的事情,比如system.exit,因为它检测到了3个手指。我不明白你想说什么。兄弟,请用适当的语言解释。@Lars Jensen。。谢谢兄弟@gaurav kumawat bhai mene ek问题上传kiya h uska立即回复dhoond问题hai kya我会问为什么。如果你想要OSX,那就使用Mac。我会对关闭的am应用程序感到恼火,我认为你正在做一些可怕的事情,比如system.exit,因为它检测到了3个手指。我不明白你想说什么。兄弟,请用适当的语言解释。@Lars Jensen。。谢谢兄弟@gaurav kumawat bhai mene ek问题上传kiya h uska立即回复dhoond问题hai kya…它正在工作,但当我使用此代码时,我的内部活动已停止。就像在我的仪表板后使用的视图寻呼机,但当我应用此代码时,它无法工作…内部布局不起作用您的内部活动是什么意思?使用getActivity.finish;如果你在处理碎片。嘿,伙计,我在活动中使用了ondispatched事件。该活动包含视图寻呼机和tabpageindicator。因此,我将used finish放在了活动中,但当我在活动中实现ondispatchevent时。当前活动中包含的寻呼机和选项卡页面指示器刚刚停止工作。是否已停止工作,因为它们给出了异常错误?或者你什么意思?嘿,兄弟,干了!!谢谢。我已跳过super.dispatchtoucheventevent并解决了我的问题,而不是返回true。它正在工作,但当我使用此代码时,我的内部活动已停止。就像在我的仪表板后使用的视图寻呼机,但当我应用此代码时,它无法工作…内部布局不起作用您的内部活动是什么意思?使用getActivity.finish;如果你在处理碎片。嘿,伙计,我在活动中使用了ondispatched事件。该活动包含视图寻呼机和tabpageindicator。因此,我将used finish放在了活动中,但当我在活动中实现ondispatchevent时。当前活动中包含的寻呼机和选项卡页面指示器刚刚停止工作。是否已停止工作,因为它们给出了异常错误?或者你什么意思?嘿,兄弟,干了!!谢谢。我已跳过super.dispatchtoucheventevent并解决了我的问题,而不是返回true