卸载安装、开机重启广播

本文介绍了如何在Android中配置广播接收器以监听应用的安装、卸载事件及系统开机完成事件,并展示了具体的代码实现。

配置清单文件

<receiver android:name="...">
        <intent-filter>
//android.intent.action.PACKAGE_INSTALL谷歌预留的,暂时没有作用               <action android:name="android.intent.action.PACKAGE_INSTALL" />
               <action android:name="android.intent.action.PACKAGE_ADDED" />
               <action android:name="android.intent.action.PACKAGE_REMOVED" />
//定义data,上面的action才会生效
              <data android:scheme="package" />
        </intent-filter>
</receiver>

<receiver android:name="...">
     <intent-filter>
          <action android:name="android.intent.action.BOOT_COMPLETED" />
     </intent-filter>
</receiver>

定义卸载安装广播接收者

public class AppStateReceiver extends BroadcastReceiver {
      @Override
      public void onReceive(Context context, Intent intent) {
           //获取广播的事件类型
           String action = intent.getAction();
           if ("android.intent.action.PACKAGE_INSTALL".equals(action)) {
                    //不会生效
                    System.out.println("应用被安装了");
               }else if ("android.intent.action.PACKAGE_ADD".equals(action)) {
                   System.out.println("应用被安装了");
               }else if ("android.intent.action.PACKAGE_REMOVED".equals(action)) {
                   //intent.getData:拿到包名
                   System.out.println("应用被卸载了"+intent.getData);
                
               }
       }
}

定义开机重启广播接收者

public class BootReceiver extends BroadcastReceiver {
      @Override
      public void onReceive(Context context, Intent intent) {
           //获取广播的事件类型
           String action = intent.getAction();
           if ("android.intent.action.BOOT_COMPLETED".equals(action)) {
                  //开启mainactivity
                  Intent intent = new Intent(context, MainActivity.class);
                  //如果在广播里面开启activity要设置一个任务栈环境,Intent.FLAG_ACTIVITY_NEW_TASK相当于singleTask启动模式
                  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                  //在广播接收者里面开启activity
                  context.startActivity(intent);
               }  
     }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值