サービスからダイアログを表示する方法

私はこのトピックについて本当に多くの記事を読みました、しかし、何も私のために動作しません(または私が望む効果を持っていません)。

私はあるアプリケーションを持っていて、ログイン後にバックグラウンドサービスを開始します(Serviceクラスの実装)。このサービスはサーバーと同期し、新しい注文が来ると、通知を作成します。

今のところ、すべてがうまくいっており、通知とToastメッセージがあります。しかし、私は、新しい注文についてユーザーに通知するダイアログを持ちたいと思います。

私が理解したところでは、ダイアログを表示するアクティビティをサービス内から開始することができます。これは動作しますが、アクティビティは現在のアクティビティスタックの最上位で開始し、ダイアログを表示します。私はビューが接続されていないアクティビティを持っており、それはダイアログを正しく表示しますが、黒い背景上に表示されます。

現在のアクティビティにダイアログを表示し、実際の背景(実行中のアクティビティ)をフェードアウトさせてダイアログを表示させたいのです。

これはどうにかして可能なのでしょうか?

ありがとうございました。 フィリップ

ソリューション

これはAndroidのデザインとUIガイドラインに反するので、絶対にやめてください。通知機能は、あなたがやっていることを達成するための好ましい方法です(すでに達成しているように聞こえますが)。

とはいえ、どうしてもやりたいのであれば、ダイアログをテーマにしたアクティビティにすることをお勧めします。そうすれば、別のダイアログを立ち上げる必要がありません。この方法については、http://developer.android.com/guide/topics/ui/themes.html#ApplyATheme を参照してください。

解説 (8)

ダイアログを表示することはできません。しかし、カスタマイズしたビューを膨らませて、特定の条件が満たされたときに画面にダイアログを表示できるようにすることで、別の方法を取ることができます。

解説 (0)

いいえ、あなたのものではないアクティビティをハイジャックしてダイアログを表示させることはできません。 自分のアクティビティを開始するというのは、古典的な方法です。

解説 (0)