1

モバイルでは問題なく動作するコードを作成しましたが、エミュレータでは強制的に停止します。コードは、スワイプアップ、ダウンを処理することです。ここに私のコードがあります:

horiz.setOnTouchListener(new OnSwipeTouchListener() 
        {
            public void onSwipeTop() 
            {
                Toast.makeText(ArtLauncher.this, "top", Toast.LENGTH_SHORT).show();
            }
            public void onSwipeBottom() 
            {
                Object sbservice = getSystemService( "statusbar" );
                Class<?> statusbarManager;
                try 
                {
                    statusbarManager = Class.forName( "android.app.StatusBarManager" );
                    Method showsb = statusbarManager.getMethod("expand" );
                    showsb.invoke( sbservice );
                } 
                catch (Exception e) 
                {
                    e.printStackTrace();
                }
            }
        });

クラス OnSwipeTouchListener は次のとおりです。

class OnSwipeTouchListener implements OnTouchListener 
{
    @SuppressWarnings("deprecation")
    private final GestureDetector gestureDetector = new GestureDetector(new GestureListener());

    public boolean onTouch(final View v, final MotionEvent event) 
    {
        return gestureDetector.onTouchEvent(event);
    }

    private final class GestureListener extends SimpleOnGestureListener implements OnGestureListener 
    {
        private static final int SWIPE_THRESHOLD = 50;
        private static final int SWIPE_VELOCITY_THRESHOLD = 50;
        @Override
        public boolean onDown(MotionEvent e)
        {
            return true;
        }
        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) 
        {
            boolean result = false;
            try
            {
                float diffY = e2.getY() - e1.getY();
                    if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) {
                        if (diffY > 0) 
                        {
                            onSwipeBottom();
                        } else 
                        {
                            onSwipeTop();
                        }
                    }

            } catch (Exception exception) 
            {
                exception.printStackTrace();
            }
            return result;
        }
        @Override
        public void onLongPress(MotionEvent arg0) 
        {   
            Toast.makeText(ArtLauncher.instance, "HELLO WORLD", Toast.LENGTH_LONG).show();
        }
        @Override
        public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,
                float arg3) 
        {
            return false;
        }
        @Override
        public void onShowPress(MotionEvent arg0) 
        {
            //Toast.makeText(ArtLauncher.instance, "hhhhhhhhhhhhhh", Toast.LENGTH_LONG).show();
        }
        @Override
        public boolean onSingleTapUp(MotionEvent arg0) 
        {
            return false;
        }
    }
    public void onSwipeTop() 
    {
    }

    public void onSwipeBottom() 
    {
    }
}

私のアプリケーションが停止して IllegalArgumentsException が発生する理由を知っている人はいますか?

4

0 に答える 0