Android - 应用安装、卸载、覆盖安装的广播及不生效原因解析

110 阅读2分钟

讲到广播接收者,大家都知道,Android中四大组件之一。我们需要新建一个类继承BroadcastReceiver,然后记得去清单文件中配置一下广播接收者。

代码也非常简单,首先看一下自定义的广播接收者:

package com.mythmayor.appinstalllistener;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

/**

  • Created by mythmayor on 2018/6/11.

*/

public class MyInstallReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

//安装广播

if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {

String packageName = intent.getDataString();

Toast.makeText(context, "安装了应用:"+packageName, Toast.LENGTH_SHORT).show();

}

//卸载广播

if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {

String packageName = intent.getDataString();

Toast.makeText(context, "卸载了应用:"+packageName, Toast.LENGTH_SHORT).show();

}

//覆盖安装广播

if (intent.getAction().equals("android.intent.action.PACKAGE_REPLACED")) {

String packageName = intent.getDataString();

Toast.makeText(context, "覆盖安装了应用:"+packageName, Toast.LENGTH_SHORT).show();

}

}

}

下面是清单文件的配置:

<manifest xmlns:android="schemas.android.com/apk/res/and…"

package="com.mythmayor.appinstalllistener">

<application

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:supportsRtl="true"

android:theme="@style/AppTheme">

尾声

最后,我再重复一次,如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家梳理了多年的架构经验,筹备近6个月最新录制的,相信这份视频能给你带来不一样的启发、收获。

Android进阶学习资料库

一共十个专题,包括了Android进阶所有学习资料,Android进阶视频,Flutter,java基础,kotlin,NDK模块,计算机网络,数据结构与算法,微信小程序,面试题解析,framework源码!