2012-03-15 13 views
0

私はサービスの代わりにGestureDetectorを実装したいと思います。このコードはアクティビティでは動作しますが、サービスでは動作しません。 Service私は@OverrideonTouchEvent(MotionEvent e)メソッドにできません - これは問題の原因ですか?GestureDetector using service

public class GestureService extends Service implements OnGestureListener { 

private GestureDetector gestureScanner; 

@Override 
public IBinder onBind(Intent intent) { 
    // TODO Auto-generated method stub 
    return null; 
} 
@Override 
public void onCreate() { 
    super.onCreate();  
    Toast.makeText(getBaseContext(),"onCreate", Toast.LENGTH_SHORT).show(); 
    gestureScanner = new GestureDetector(this); 
} 


@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    Toast.makeText(getBaseContext(),"onStartCommand", Toast.LENGTH_SHORT).show(); 
    return START_STICKY; 

} 

public boolean onTouchEvent(MotionEvent me) { 
    return gestureScanner.onTouchEvent(me); 
} 

@Override 
public boolean onDown(MotionEvent e) { 
    // TODO Auto-generated method stub 
    Toast.makeText(getBaseContext(),"onDown", Toast.LENGTH_SHORT).show(); 
    return false; 
} 
@Override 
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
     float velocityY) { 
    // TODO Auto-generated method stub 
    return false; 
} 
@Override 
public void onLongPress(MotionEvent e) { 
    // TODO Auto-generated method stub 

} 
@Override 
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, 
     float distanceY) { 
    // TODO Auto-generated method stub 
    return false; 
} 
@Override 
public void onShowPress(MotionEvent e) { 
    // TODO Auto-generated method stub 

} 
@Override 
public boolean onSingleTapUp(MotionEvent e) { 
    Toast.makeText(getBaseContext(),"onSingleTapUp", Toast.LENGTH_SHORT).show(); 
    // TODO Auto-generated method stub 
    return false; 
} 

}

私は、私はあなたがすべてのアプリケーションのためにそれを使用できるようにサービスしたい推測しているstartService(new Intent(this,GestureService.class));

答えて

0

を使用して、アクティビティクラスにサービスを開始しました。しかし、this articleを読むことから、それは実際には動作しません。ジェスチャはアプリケーション固有のものです。

+0

ok。 'onTouchEvent(MotionEvent event)'を呼び出せば、イベントのx座標とy座標を取得する以外に、どのような情報が得られますか?すなわち行動である。私は 'event.getAction()== MotionEvent.ACTION_DOWN'を試みましたが、画面に触れるとtrueを返さないようです – star