解决方案 »

  1.   

    这个其实跟static 变量与成员变量的关系是一样,static 的内部类属于外部类,而非static的内部类只是属于外部对象。就是说你没有实例化外部类的对象你就不能访问到非static的内部类。
      

  2.   

    这个其实跟static 变量与成员变量的关系是一样,static 的内部类属于外部类,而非static的内部类只是属于外部类对象。就是说你没有实例化外部类的对象你就不能访问到非static的内部类。
      

  3.   

    1.BroadcastReceiver作为内部类为什么不声明为static就找不到
    你怎么调用的?
    2.equals()里边,smsAction是定义的一个字符串如下
    private static final String smsAction = "android.provider.Telephony.SMS_RECEIVED"
    但是如果我把字符串放到资源文件里,然后用R.string.smsAction,就接收不到广播了
    你是R.string.smsAction还是getString(T.string.smsAction)?
    我觉得private static final String smsAction = "android.provider.Telephony.SMS_RECEIVED"完全没必要弄到string.xml里面
      

  4.   

    1. 这个是系统调用的吧
    2. 直接R.string.smsAction
      

  5.   

    if(intent.getAction().equals(smsAction))是比较字符串,如果放在string.xml中编译后,直接用R.string.smsAction ,这只是R.java
    中的一个ID号,if里的条件就不成立,表现出来的现象好像就是没收到广播。如果你再if语句上面添加一行log打印,你还是可以看到程序是运行到了的。