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();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值