2012-01-24 7 views
2

EditWindowをAppWidgetに配置することができないように見えるので、クリックするとEditTextでPopUpWindowを開きたいと思います。AppWidgetからPopUpWindowを開く

私はAppWidgetからアクティビティを開く方法を知っており、アクティビティからPopUpWindowを開く方法も知っています。私は、しかし、AppWidgetからPopUpWindowを開く方法を知っていません。 javadoc(Intent、RemoteViews、PendingIntentなど)の多くのクラスを調べましたが、このPopUpWindowの起動方法が見つかりません。どんな助けもありがとう。

答えて

1

AppWidgetProviderBroadcastReceiverです。 Android Docは言う:

A BroadcastReceiverオブジェクトは、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を参照してください):

は、あなたが次の3つの方法がありそうです。

  • アクティビティのウィットダイアログテーマを作成して(ポップアップのように見えるように)、ユーザーがAppWidgetをクリックしたときに表示します。
  • 関連する問題