android service 如何弹出dialog
2015-08-25 16:29
579 查看
在service中弹出toast,需要使用handler,
在service中弹出dialog,写着跟activity同样代码会报错。
因为这个dialog显示时是需要依赖一个activity,如何需要在service中显示需要把dialog设置成一个系统的dialog,即全局性质的提示框。
注意:
使用系统dialog,需要在清单文件中添加权限:
e.g.
handler.post(new Runnable() { @Override public void run() { Toast.makeText(this, "重启服务", 1).show(); } });
在service中弹出dialog,写着跟activity同样代码会报错。
因为这个dialog显示时是需要依赖一个activity,如何需要在service中显示需要把dialog设置成一个系统的dialog,即全局性质的提示框。
dialog.getWindow().setType((WindowManager.LayoutParams,TYPE_SYSTEM_ALERT)); //在dialog show 方法之前添加这个代码,表示该dialog是系统的dialog。
注意:
使用系统dialog,需要在清单文件中添加权限:
android.permission.SYSTEM_ALERT_WINDOW
e.g.
Builder builder = new AlertDialog.Builder(this); builder.setMessage("是否重启服务"); builder.setNegativeButton("取消", new OnClickListense() { @Override public void onClick(DialogInterface dialog, int which) { // to do } }); builder.setPositiveButton("确定", new OnClickListense() { @Override public void onClick(DialogInterface dialog, int which) { // to do } }); final AlertDialog dialog = buidler.create(); //在dialog show前添加此代码,表示该dialog属于系统dialog。 dialog.getWindow().setType((WindowManager.LayoutParams.TYPE_SYSTEM_ALERT)); new Thread() { public void run() { SystemClock.sleep(2000); hanlder.post(new Runnable() { @Override public void run() { dialog.show(); } }); }; }.start();
相关文章推荐
- Android-布局优化(include , merge , ViewStub)
- Android SwipeRefreshLayout 官方下拉刷新控件介绍
- android SQLite数据库的增删改查
- Android CountDownTimer倒计时器的使用
- Android记录14--自定义Comparator,实现List按时间排序
- Android:ListView控件补充例子
- Android—ViewPager: Can't Change Tag of Fragment
- 解决Gradle DSL method not found: ‘android()’
- Android-基本控件(SeekBar 可拖动 滚动条的使用)
- android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
- android 学习笔记 创建自己的内容提供器
- Ubuntu平台下Android ADB驱动的安装
- Android-复制创建可操作的图片
- Android Studio 使用NDK编程
- android解析xml格式数据
- Android异步消息处理机制完全解析,带你从源码的角度彻底理解
- android MTK驱动背光唤醒流程
- 离线安装ADT 23.0.4遇到的问题与解决方法
- Android 触摸手势基础 官方文档概览
- AndroidStudio使用GreenDao实战