在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();
时间: 2024-11-07 10:24:11