마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

위젯과 서비스가 통신하는 방법

0 추천

위젯의 버튼을 누르면, 어플리케이션의 서비스 안에 있는 메소드를 실행하도록 만들고자 합니다.

 

다음의 코드를  widget provider class에 추가하였는데,  에러는 나지 않지만 button을 클릭해도 pendingIntent가 실행되지 않습니다. 어떤 코드를 추가해야 하는지 궁금하고, 위젯과 서비스가 통신할 수 있는 방법에 대해 공부할 수 있는 자료가 있다면 링크를 부탁드립니다. 감사합니다.

public void notifyChange(nowPlaying service, int[]appWidgetIds ) {
		
		final ComponentName serviceName = new ComponentName(service, nowPlaying.class);
		final AppWidgetManager gm = AppWidgetManager.getInstance(service);
		Intent intent = new Intent( "command_next" );
		intent.setComponent(serviceName);
		PendingIntent pendingIntent = PendingIntent.getService( service, 0, intent, 0 );
		RemoteViews remoteView = new RemoteViews( service.getPackageName(), R.layout.widget_layout  );
		remoteView.setOnClickPendingIntent( R.id.btn, pendingIntent );
		
		gm.updateAppWidget( appWidgetIds, remoteView );
		
	}

 

익명사용자 님이 2013년 6월 3일 질문

1개의 답변

0 추천

서비스를 실행시키기 위해선 아래와같은 문장이 필요하지 않을까요?

startService(new Intent(this, Service.class));

혹시나 아래와 같은.... 

http://regretmessage.tistory.com/entry/Android-appWidget-%EC%83%9D%EC%84%B1%EA%B3%BC-Service%EC%99%80%EC%9D%98-%EC%97%B0%EB%8F%99

  (11,920 포인트) 님이 2013년 6월 5일 답변
...