分享

Android开发中遇到java.lang.RuntimeException: Unable to instantiate receiver

 quasiceo 2014-09-17
就是在自己的应用中,监听系统新安装程序或者卸载程序,用到BroadcastReceiver
首先在manifest中加入权限
  1.     <uses-permission android:name="android.permission.RESTART_PACKAGES"/>  
  2.     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
复制代码
注册一个Receiver
  1.         <receiver
  2.             android:name=".activity.HomeActivity$PackageReceiver"
  3.             android:label="@string/app_name" >
  4.             <intent-filter>
  5.                 <action android:name="android.intent.action.PACKAGE_ADDED" />
  6.                 <action android:name="android.intent.action.PACKAGE_REMOVED" />
  7.                 <data android:scheme="package" />
  8.             </intent-filter>
  9.         </receiver>
复制代码
这里提一下,PackageReceiver继承BroadcastReceiver,并且在HomeActivity中,属于publicstatic的内部类
在HomeAcitivity中,PackageReceiver如下:
  1. public static class PackageReceiver extends BroadcastReceiver {
  2.                 @Override
  3.                 public void onReceive(Context context, Intent intent) {
  4. String action = intent.getAction();
  5.       if (!TextUtils.isEmpty(action)) {
  6.          // Install app
  7.         if (action.equals("android.intent.action.PACKAGE_ADDED")) {
  8.            Log.d("Test", "安装程序");
  9.         // Uninstall app
  10.         } else if (action.equals("android.intent.action.PACKAGE_REMOVED")) {
  11.           Log.d("Test", "卸载程序");
  12.       }
  13.    }
  14. }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多