zoukankan      html  css  js  c++  java
  • 在Service里调用AlertDialog

    用常规的方法在AlertDialog的时候,会报错,大意是「can not add window in this view」。

    原因是Service是没有界面的,只有Activity才能添加界面。

    解决方法是使用系统的dialog,即全局性质的提示框。这个Dialog可能不只局限于Service里可以使用,而是在任何位置都可以悬浮。

    具体可以模仿如下代码:

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

    讨厌的一点是要加一个权限:

        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

    另外,在Listener的匿名内部类中使用一个non-final的变量'msg'时,它提示了「Cannot refer to a non-final variable msg inside an inner class defined in a different method"。」但是在函数声明过程中加入final(public void handleMessage(final Message msg))好像是不行的,会报错。我加了一个中间语句:

    final File msg1 = (File)msg.obj;

    然后再使用msg1,就可以了。

    解决问题的过程中还遇到了handler,final(《重载、覆写和继承》),以及super之类的知识,要学习handler。

    参考:http://my.eoe.cn/cainiao1/archive/2345.html?f_section=similar

  • 相关阅读:
    scrapy爬取某网站,模拟登陆过程中遇到的那些坑
    Linux平台安装MongoDB
    Oracle HAVING子句
    oracle查找重复记录-转
    PLSQL存储过程(基础篇)-转
    oracle for update和for update nowait的区别
    Oracle两个数据库互相访问,DBLink使用-转
    中国人素质低的根本原因
    威胁李嘉诚是愚蠢的
    回归农村,这才是我想要的生活
  • 原文地址:https://www.cnblogs.com/larrylawrence/p/3570975.html
Copyright © 2011-2022 走看看