如何在service中彈出dialog

2021-06-19 01:58:59 字數 1716 閱讀 9220

更新於 05月09日

訪問(2071))

我們都知道service是沒有介面的,默默的在後台執行邏輯**,有時候需要和前台有所互動,如:toast或彈出提示框等等

在service中彈出toast很簡單,只要使用handler就可搞定,**如下

123456

hanlder

.post

(new

runnable

()});

而在service中彈出dialog時,如果寫和activity同樣的**時會報錯

因為這個dialog的顯示是需要依附於乙個activity,如果需要在servcie中顯示需要把dialog設定成乙個系統的dialog,即全域性性質的提示框,所以只要手機處於開機狀態,無論它現在處於何種介面之下,只要呼叫alter.show(),就會彈出提示框來。需要在show() 呼叫之前新增以下**:

1

dialog

.getwindow

().settype

((windowmanager

.layoutparams

.type_system_alert

));

注意:使用系統的dialog需要在清單檔案中新增許可權,否則不會顯示出來

android.permission.system_alert_window

全部**

1

2 34 5

6 78 9

1011

1213

1415

1617

1819

2021

2223

2425

2627

2829

30

builder

builder

=new

alertdialog

.builder

(this

);builder

.settitle

("提示"

);builder

.setmessage

("該下車了"

);builder

.setnegativebutton

("取消"

,new

onclicklistener

()});

builder

.setpositivebutton

("確定"

,new

onclicklistener

()});

final

alertdialog

dialog

=builder

.create

();**

//在dialog show方法之前新增如下**,表示該dialog是乙個系統的dialog**

dialog

.getwindow

().settype

((windowmanager

.layoutparams

.type_system_alert

));new

thread

()});

};}.

start

();}

如何在service中彈出dialog

更新於 05月09日 訪問 3344 我們都知道service是沒有介面的,默默的在後台執行邏輯 有時候需要和前台有所互動,如 toast或彈出提示框等等 在service中彈出toast很簡單,只要使用handler就可搞定,如下 123456 hanlder post new runnable ...

如何在service中彈出dialog

在service中彈出toast很簡單,只要使用handler就可搞定,如下 hanlder.post new runnable 而在service中彈出dialog時,如果寫和activity同樣的 時會報錯 因為這個dialog的顯示是需要依附於乙個activity,如果需要在servcie中顯...

如何在service中彈出dialog

我們都知道service是沒有介面的,默默的在後台執行邏輯 有時候需要和前台有所互動,如 toast或彈出提示框等等 在service中彈出toast很簡單,只要使用handler就可搞定,如下 123456 hanlder post new runnable 而在service中彈出dialog時...