안드로이드 개발 질문/답변
(글 수 45,052)
surfaceview 에서 sendBroadcast 를 사용 하고 싶은데 에러 입니다.
지금 제가 surfaceview 에서 터치를 하면 service 로 값을 보내고 싶어서
sendBroadcast 를 사용 하게 되었습니다. intent 나 application 으로 전역변수로 넘기는거 모두 실패해서
sendBroadcast 를 사용 하려고 합니다.
그런데 아래 코드 처럼 사용 중인데 에러 입니다.
사용 할 수 있는 방법이 없는지요? 아니면, 값을 넘겨 줄수 있는 다른 방법을 알려 주셔도
좋겠습니다.
public class ViewDesktop extends SurfaceView implements Callback {
...
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
Intent serviceIntent = new Intent();
serviceIntent.setAction(Intent.ACTION_DEFAULT);
serviceIntent.putExtra("echo", "echo OK");
sendBroadcast(serviceIntent);
return super.onTouchEvent(event);
}
}
sendBroadcast(serviceIntent);
이 메서드는 Context를 상속받은 클래스에서 사용해야 한답니다.
지금 그 코드는 SurfaceView니까 생성할때 받은 Context를 이용해서 호출해 주면 됩니다.
getContext().sendBroadcast(serviceIntent);
이렇게 바꿔 보세요.