2011-12-23 2 views
2

위젯 및 기본 애플리케이션에 대한 간략한 설명입니다. 미안 영어 때문에 (영어가 나의 모국어가 아니다)Android 위젯 - 애플리케이션 강제 종료시 서비스 다시 바인딩

나는 음악 플레이어 위젯을 가지고있다. 이 위젯을 사용할 수있게되면 메인 애플리케이션의 뮤직 플레이어 서비스 (A)에 바인딩해야합니다. AppWidgetProvider에서 서비스를 바인딩 할 수 없기 때문에 AppWidgetProvider에서 로컬 서비스 (B)를 시작하고 여기에서 해당 뮤직 플레이어 서비스 (A)에 바인딩합니다. 또한 위젯의 버튼 기능을 수행하는 서비스 C도 있습니다.

모든 것이 잘 작동하는 것 같지만 서비스가있는 내 기본 앱이 모두 강제 종료 될 때 (잠시 후 다시 작성됩니다) 위젯에서 A로 리 바인드해야합니다. 문제는 주 앱이 강제로 중지되었을 때입니다. 문맥 (onEnabled, onUpdate에서 컨텍스트를받을 때마다 AppWidgetProvider에서 전역 변수로 컨텍스트를 저장했기 때문에)이 NULL이기 때문에 A에 리바 인드 할 수 없습니다.

제 질문은 위의 위젯 구조에 관한 것입니다. A에 바인딩 할 때 서비스 B가 중단되어야합니까? 주 앱과 서비스가 강제 종료 될 때 서비스 A에 다시 바인딩 할 수 있습니까? (하지만 잠시 후 자동으로 다시 시작됩니다).

고마워요! 주요 응용 프로그램의 onUpdate에 다시 서비스를 바인딩, 정지를 강제 때

답변

2
응용 프로그램 컨텍스트를 사용) ( context.getApplicationContext().bindService(..)
  • 를 사용하여, 우리는 위젯에서 서비스를 바인딩 할 수 있습니다,

    1. 먼저 내 자신의 질문에 대답

      MyMainApplication.Instance().getApplicationContext().bindService(..)

  • 관련 문제