Có thể hiển thị hộp thoại bật lên (AlertDialog) trong màn hình chính trên thiết bị Android thông qua dịch vụ không?Hộp thoại bật lên trong màn hình chính Android
Trả lời
Bạn có thể tạo Activity
với chủ đề Theme.Dialog
. Trong tập tin AndroidManifest.xml
bạn thêm chủ đề để hoạt động, như thế này:
<activity android:name=".DialogActivity" android:theme="@android:style/Theme.Dialog"></activity>
Từ dịch vụ của bạn chỉ đơn giản là bắt đầu Activity
này. Bạn sẽ phải bắt đầu hoạt động với cờ Intent.FLAG_ACTIVITY_NEW_TASK
. Xem How to start an Activity from a Service
Bạn không thể tạo thoại từ dịch vụ nhưng chúng tôi có một giải pháp thay thế là Bạn có thể tạo dialog activity
và bắt đầu hoạt động từ dịch vụ của bạn
Bạn có thể đặt Theme hoạt động như hộp thoại bằng cách dưới đây cách
<activity android:name=".MyDialogActivity" android:theme="@android:style/Theme.Dialog"
android:label="@string/app_name">
</activity>
Có ai cần lựa chọn, "android: launchMode =" singleInstance", khi hoạt động pop trong máy thu phát sóng hoặc dịch vụ ?? Nếu không có tùy chọn này, ứng dụng của tôi bắt đầu tự động và pop MyDialogActivity trên i t. Và sau đó, đã xảy ra sự cố. (Ứng dụng của tôi có Hoạt động chính với chức năng tự động đăng nhập. Khi Hoạt động mới khác bắt đầu tự động, MyDialogActivity được ẩn bởi nó.)
Vì vậy, đây là mã mẫu xml của tôi.
<activity
android:name=".MyDialogActivity"
android:launchMode="singleInstance"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Dialog" />
<activity
Tôi hy vọng ai đó cần nhận xét của tôi. :)
đã gặp trở ngại trên internet trong nhiều giờ, cài đặt launchMode giúp, thx. –
@Dallas Điểm tốt. –
Aki, Dallas: Tôi đã sử dụng Theme.Dialog này và hoạt động thành công. Cảm ơn cho điều đó nhưng tôi có một câu hỏi phải làm gì để loại bỏ hộp thoại này trên nút bấm ??? –
Kết thúc cuộc gọi() trong onclicklistner của nút –