2012-01-24 3 views
2

AppWidget에 EditText를 삽입하는 것이 가능하지 않으므로이를 클릭하면 EditText가있는 PopUpWindow를 열고 싶습니다.AppWidget에서 PopUpWindow 열기

저는 AppWidget에서 활동을 여는 방법을 알고 있고 활동에서 PopUpWindow를 여는 방법도 알고 있습니다. 그러나 저는 AppWidget에서 PopUpWindow를 여는 방법을 알지 못합니다. javadoc (Intent, RemoteViews, PendingIntent 등)에서 여러 클래스를 조사했지만이 PopUpWindow를 시작하는 방법을 찾을 수 없습니다. 어떤 도움을 주시면 감사하겠습니다.

답변

1

AppWidgetProviderBroadcastReceiver입니다. Android Doc는 말한다 :

브로드 캐스트 리시버 오브젝트가 onReceive 호출 기간 (문맥, 의도)에 대해서만 유효합니다. 이 함수에서 코드가 반환되면 시스템은 객체가 완료된 것으로 간주하고 더 이상 을 활성화하지 않습니다.

이것은 당신이 onReceive에서 무엇을 할 수 있는지에 중요한 영향 (문맥, 의도) 구현이있다 : 당신이 비동기 작업을 처리하기 위해 함수에서 반환해야하므로, 비동기 작업을 필요로 사용할 수없는 것을, 그러나 에서 BroadcastReceiver는 더 이상 활성 상태가 아니므로 이 완료되기 전에 시스템은 프로세스를 종료 할 수 있습니다.

특히, BroadcastReceiver 내의 대화 상자를 표시하거나 의 서비스에 바인딩 할 수 없습니다. 이전 버전의 경우 NotificationManager API를 사용해야합니다. 후자의 경우 Context.startService()을 사용하여 서비스으로 명령을 보낼 수 있습니다.

  1. 이 서비스를 사용하여 팝업을 표시하는 (How to display alert diaolog(popup) from backgroung running service? 참조)
  2. 사용 알림 관리자 (AlarmManager never calling onRecieve in AlarmReceiver/BroadcastReceiver 참조)

당신이 세 가지 방법이 보인다.

  • 활동 위양 대화 테마를 만들어 팝업처럼 보이게하고 사용자가 AppWidget을 클릭 할 때 표시합니다.