前言
很多时候,我们都需要监听应用的卸载和安装并做相应的事件,比如:应用卸载后,删除安装包、清除垃圾、弹出网页;应用安装后,刷新某些事件,等等,都是非常有用的。
我这里的应用场景是在做清理app的过程中有一个软件管理,当用户卸载掉其他应用后需要弹框提示用户卸载什么app成功。
新建监听类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| package com.cssq.clean.receiver
import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.pm.PackageManager import com.google.gson.Gson import com.hjq.toast.ToastUtils
class AppReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) { if (intent!!.action.equals(Intent.ACTION_PACKAGE_ADDED)) { val packageName = intent.dataString LogUtil.e("安装了:" + packageName + "包名的程序") }
if (intent.action.equals(Intent.ACTION_PACKAGE_REMOVED)) { val packageName = intent.dataString LogUtil.e("卸载了:" + packageName + "包名的程序") } } }
|
代码方式注册监听
一般在 activity 中注册
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
private lateinit var receiver: AppReceiver
override fun onStart() { receiver = AppReceiver() val intentFilter = IntentFilter() intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED) intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED) intentFilter.addDataScheme("package") registerReceiver(receiver, intentFilter) }
override fun onDestroy() { super.onDestroy() unregisterReceiver(receiver) }
|
原文链接:
https://www.cnblogs.com/zhujiabin/p/5204157.html