android service 如何彈出dialog


在service中彈出toast,需要使用handler,

1 handler.post(new Runnable() {
2      @Override
3      public void run() {
4           Toast.makeText(this, "重啟服務", 1).show();
5      }  
6 });

在service中彈出dialog,寫着跟activity同樣代碼會報錯。

因為這個dialog顯示時是需要依賴一個activity,如何需要在service中顯示需要把dialog設置成一個系統的dialog,即全局性質的提示框。

1 dialog.getWindow().setType((WindowManager.LayoutParams,TYPE_SYSTEM_ALERT));
//在dialog show 方法之前添加這個代碼,表示該dialog是系統的dialog。

注意:

使用系統dialog,需要在清單文件中添加權限:

1 android.permission.SYSTEM_ALERT_WINDOW

 

e.g. 

 1 Builder builder = new AlertDialog.Builder(this);
 2 builder.setMessage("是否重啟服務");
 3 builder.setNegativeButton("取消", new OnClickListense() {
 4     @Override
 5     public void onClick(DialogInterface dialog, int which) {
 6            // to do
 7     }
 8 });
 9 builder.setPositiveButton("確定", new OnClickListense() {
10     @Override
11     public void onClick(DialogInterface dialog, int which) {
12            // to do
13     }
14 });
15 final AlertDialog dialog = buidler.create();
16 //在dialog show前添加此代碼,表示該dialog屬於系統dialog。
17 dialog.getWindow().setType((WindowManager.LayoutParams.TYPE_SYSTEM_ALERT));
18 new Thread() {
19      public void run() {
20             SystemClock.sleep(2000);
21             hanlder.post(new Runnable() {
22                     @Override
23                     public void run() {
24                           dialog.show();
25                     }
26             });
27      };
28 }.start();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM