2012-03-15 5 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

확인. 내가 onTouchEvent (MotionEvent 이벤트)를 호출 할 수 있다면, 이벤트의 x와 y 좌표를 얻는 것 외에 다른 정보를 얻을 수 있습니까? 즉 액션. 나는'event.getAction() == MotionEvent.ACTION_DOWN'을 시도했지만 화면을 만졌을 때 true를 반환하지 않는 것 같습니다. – star