モバイルでは問題なく動作するコードを作成しましたが、エミュレータでは強制的に停止します。コードは、スワイプアップ、ダウンを処理することです。ここに私のコードがあります:
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 が発生する理由を知っている人はいますか?