Bagaimana cara menampilkan Dialog dari Layanan

Saya telah membaca begitu banyak posting tentang topik ini, namun tidak ada yang bekerja untuk saya (atau doesn't memiliki efek yang saya inginkan).

Saya memiliki sebuah aplikasi, yang setelah masuk akan memulai Layanan latar belakang (pelaksanaan Layanan kelas). Layanan ini sync dengan Server dan jika order baru datang, itu menciptakan pemberitahuan.

Sejauh ini, semuanya bekerja dengan baik, saya memiliki notifikasi dan pesan Toast. Namun, saya ingin memiliki sebuah dialog, yang memberitahukan pengguna tentang orde baru.

Seperti yang saya mengerti, anda dapat memulai aktivitas dari dalam pelayanan, yang menampilkan dialog. Ini bekerja, tapi kegiatan ini dimulai pada puncak arus kegiatan stack dan menampilkan dialog. Saya memiliki aktivitas dengan tidak melihat terpasang dan itu benar menampilkan dialog, namun, pada latar belakang hitam.

Apa yang saya inginkan adalah untuk menampilkan dialog pada aktivitas saat ini, menyebabkan latar belakang yang sebenarnya(menjalankan aktivitas) untuk memudar dan menampilkan dialog.

Ini entah bagaimana mungkin?

Terima kasih, Filip

Mengomentari pertanyaan (1)

Kita dapat menunjukkan dialog dari layanan hanya jika itu adalah sistem alert dialog. Jadi, set TYPE_SYSTEM_ALERT tata letak jendela parameter untuk Dialog sebagai berikut:

dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

Tapi, itu perlu izin SYSTEM_ALERT_WINDOW. Jadi, don't lupa untuk menambahkan ini permissin di file Manifest.

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
Komentar (15)
Larutan

Saya sangat, sangat, SANGAT merekomendasikan bahwa anda DON'T melakukan hal ini (itu bertentangan desain Android dan pedoman UI). Pemberitahuan ini adalah cara yang lebih disukai untuk mencapai apa yang anda lakukan (yang kedengarannya seolah-olah anda sudah tercapai).

Bahwa menjadi kata, jika anda harus melakukannya, saya akan merekomendasikan hanya menggunakan Dialog bertema kegiatan. Dengan cara itu anda don't harus memulai dialog yang terpisah. Silahkan lihat http://developer.android.com/guide/topics/ui/themes.html#ApplyATheme untuk bagaimana untuk melakukan hal ini.

Komentar (8)

anda bisa mulai dengan belajar bagaimana untuk membuat suatu kegiatan yang terlihat seperti sebuah dialog (tidak ada bar judul, latar belakang transparan, "mengambang" efek, dll.) dan tidak ada, anda bisa't hanya memulai dialog tanpa activty

Komentar (1)

Anda tidak bisa menampilkan dialog. Tapi anda bisa pergi ke alernative dengan cara menggembungkan disesuaikan anda lihat sehingga anda dapat menampilkan dialog pada layar dimanapun kondisi tertentu terpenuhi.

Komentar (0)

Tidak, anda dapat't membajak kegiatan yang tidak "anda" dan perintah untuk menampilkan dialog. Pendekatan anda memulai aktivitas anda sendiri adalah salah satu klasik.

Komentar (0)