在Service中彈出Toast和Dialog

2021-06-19 03:57:38 字數 859 閱讀 7947

眾所周知,toast必須在ui主線程上才能正常顯示,而在service中是無法獲得acivity的context的,在service中想顯示出toast只需將show的訊息傳送給主線程looper就可以了

handler handler = new handler(looper.getmainlooper());

handler.post(new runnable()

});

此時便可顯示toast

dialog的用法與此類似,但是要多加個許可權

在manifest中新增此許可權以彈出dialog

.seticon(android.r.drawable.ic_dialog_info)

.settitle("service中彈出dialog了")

.setmessage("是否關閉dialog?")

.setpositivebutton("確定",

new dialoginte***ce.onclicklistener()

}).setnegativebutton("取消",

new dialoginte***ce.onclicklistener()

});final alertdialog dialog = builder.create();

dialog.getwindow().settype(

(windowmanager.layoutparams.type_system_alert));

handler handler = new handler(looper.getmainlooper());

handler.post(new runnable()

});

如何在service中彈出dialog

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

如何在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中顯...