`
djun100
  • 浏览: 167625 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

service如何弹出dialog

 
阅读更多


我们都知道service是没有界面的,默默的在后台执行逻辑代码,有时候需要和前台有所交互,如:toast或弹出提示框等等

service中弹出toast很简单,只要使用handler就可搞定,代码如下

1
2
3
4
5
6
hanlder.post(new Runnable() {
    @Override
    public void run() {
        Toast.makeText(DialogService.this, "启动服务", 1).show();
     }
    });

而在service中弹出dialog时,如果写和activity同样的代码时会报错
s.jpg
因为这个dialog的显示是需要依附于一个activity,如果需要在servcie中显示需要把dialog设置成一个系统的dialog,即全局 性质的提示框,所以只要手机处于开机状态,无论它现在处于何种界面之下,只要调用alter.show(),就会弹出提示框来。需要在show() 调用之前添加以下代码:

1
dialog.getWindow().setType((WindowManager.LayoutParams.TYPE_SYSTEM_ALERT));

注意:使用系统的Dialog需要在清单文件中添加权限,否则不会显示出来
android.permission.SYSTEM_ALERT_WINDOW

全部代码

Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("提示");
    builder.setMessage("该下车了");
    builder.setNegativeButton("取消", new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

        }
    });
    builder.setPositiveButton("确定", new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

        }
    });
    final AlertDialog dialog = builder.create();
    **//在dialog  show方法之前添加如下代码,表示该dialog是一个系统的dialog**
    dialog.getWindow().setType((WindowManager.LayoutParams.TYPE_SYSTEM_ALERT));
    new Thread(){
        public void run() {
            SystemClock.sleep(4000);
            hanlder.post(new Runnable() {
                @Override
                public void run() {
                    dialog.show();
                }
            });
            };
    }.start();
}

分享到:
评论

相关推荐

    详解Android 8.1.0 Service 中 弹出 Dialog的方法

    场景:在Service 中开启线程下载升级包,当下载完系统升级包,弹出一个Dialog 提示用户。  注意,Android 系统版本不一样,可能会有不一样的表现。当前是基于 Android 8.1.0 的 Service 中弹 Dialog。  首先,就是...

    Android Studio Service安卓在服务中如何弹出Dialog

    Android Studio Service安卓在服务中如何弹出对话框Dialog

    Android-Android开发启动app弹出一张广告图片Dialog可以查看大图查看某个图片功能

    Android开发启动app弹出一张广告图片,Dialog可以查看大图,查看某个图片功能

    android service弹出对话框

    android service中弹出对话框。

    android 全局dialog 兼容android 8.0

    android 全局dialog 兼容android 8.0、内置service模拟来自后台消息推送后自动弹出全局dialog

    service.dialog.jquery

    ## service.dialog.jquery-对话框弹出 ###描述 service.dialog.jquery是另一个用于打开对话窗口的 jquery 组件。 我知道有很多这样的对话框插件,所以你可能想知道为什么是这个。 好吧,对我来说,有几件事对于...

    自定义Dialog弹窗

    从底部弹出的dialog。位置你可以在base里自己改。使用方法都有。public class BaseDialog extends Dialog { private View mContentView; public Context mContext; public LayoutInflater mInflater; public ...

    Android 8.0如何完美适配全局dialog悬浮窗弹出

    有时候我们需要在App中弹dialog,但是却不知道依附的是哪个Activity,这个时候通常会启动一个service来依附,显示一个全局的dialog。 Android 6.0出现的悬浮窗权限 为什么从6.0说起? 在Android6.0之后,使用悬浮窗...

    浅析Android Service中实现弹出对话框的坑

    一、手机版本问题,大多数文章没有涉及这个点,导致他们的代码并无法正常使用 M版本以上需要使用的Type–> TYPE_APPLICATION_OVERLAY AlertDialog.Builder builder=...Dialog dialog=builder.create(); if (Build.VERS

    Android开发中Dialog半透明背景消失

    // 初始化警告弹出框 alertDialog = new EmpAlertView(context, Utils.getIdByName(context, style, alert_style)); alertDialog.setCanceledOnTouchOutside(false); LayoutInflater inflater = (LayoutInflater) ...

    Android 自定义弹出菜单和对话框功能实例代码

    Android 开发当中,可能会存在许多自定义布局的需求,比如自定义弹出菜单(popupWindow),以及自定义对话框(Dialog)。 话不多说,直接上图片。   先讲第一种,自定义PopUpWindow 1.popupWindow protected ...

    Android 通过代码添加app 到白名单。关闭此APP的 省点策略,适用于手机 安卓6.0系统以上。

    会弹出dialog 引导用户选择。 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (!pm.isIgnoringBatteryOptimizations...

    Android--UI-新手必备源码master.zip

    包括Android布局,弹窗,配色,单击事件,UI,精美炫酷的activity切换动画和空间动画,是新手必备的源码,内含相关的Dome 25件。 - - 文件夹 PATH 列表 卷序列号为 4E8D-6931 C:. │ .txt │ Android-UI-新手必备...

    asp.net知识库

    用于弹出ModalDialog进行数据选择的控件 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法 制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的...

    .htaccess

    百度首页 | 百度空间 | 登录 广告停放提高网站流量,centos学习 主页博客相册|个人档案 查看文章 .htaccess怎么用2007-05-16 14:04(文章来源)...

Global site tag (gtag.js) - Google Analytics