静态注册BroadcastReceiver内部类

先看代码:

  1. public class ZonePicker {  
  2.   
  3.     public static class SetDefaultTimeZone extends BroadcastReceiver{  
  4.         @Override  
  5.         public void onReceive(Context context, Intent intent) {  
  6.             // TODO Auto-generated method stub  
  7.             if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {  
  8.                  
  9.             }  
  10.         }  
  11.     }  
  12. }  


xml文件:

  1. <receiver android:name="ZonePicker$SetDefaultTimeZone" android:enabled="true">  
  2.             <intent-filter>  
  3.                 <action android:name="android.intent.action.BOOT_COMPLETED"></action>  
  4.             </intent-filter>  
  5. </receiver>  

在有的时候会用到BroadcastReceiver内部类,使用静态注册方式注册BroadcastReceiver,但是会出现不能加载你继承的BroadcastReceiver类,解决办法是你需要把你自己写的类(在这里是:SetDefaultTimeZone)声明为静态的。

原文地址:https://www.cnblogs.com/songsiyao/p/2748314.html