Android应用开发Android 8.0 App 安装卸载流程
白羽 2018-11-14 来源 :网络 阅读 1057 评论 0

摘要:本文将带你了解Android应用开发Android 8.0 App 安装卸载流程,希望本文对大家学Android有所帮助。

    本文将带你了解Android应用开发Android 8.0 App 安装卸载流程,希望本文对大家学Android有所帮助。


<

此文章为了验证Android 8.0 安装,卸载和更新一个应用时广播的接受状态, 主要是更新一个应用时都会接收到那些广播, 先接收到那些广播, 下面就以一个简单的例子来验证这些:
public class PackageInstallReceiver extends BroadcastReceiver {     @Override    public void onReceive(Context context, Intent intent) {        //接收安装广播        if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) {            String packageName = intent.getData().getSchemeSpecificPart();            Log.e("cjl","install app packageName = "+packageName);        }        //接收卸载广播        if (intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED)) {            String packageName = intent.getData().getSchemeSpecificPart();            Log.e("cjl","uninstall app packageName = "+packageName);            boolean isReplace = intent.getBooleanExtra(Intent.EXTRA_REPLACING, false);            Log.e("cjl","isReplace = "+isReplace);        }        //接收升级更新广播        if (intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED)) {            String packageName = intent.getData().getSchemeSpecificPart();            Log.e("cjl","upgrade app packageName = "+packageName);        }    }     public IntentFilter getIntentFilter() {        IntentFilter intentFilter = new IntentFilter();        intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);        intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);        intentFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);        intentFilter.addDataScheme("package");        return intentFilter;    }     public void register(Context context) {        context.registerReceiver(this, getIntentFilter());    }     public void unregister(Context context) {        context.unregisterReceiver(this);    }}
新建一个广播接收器, 监听安装, 卸载和更新的广播, Android 在 8.0 之后禁止使用静态注册的方式去注册这些广播, 只能动态注册, 下面是代码:
public class MainActivity extends AppCompatActivity {    private PackageInstallReceiver mReceiver;     @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mReceiver = new PackageInstallReceiver();        mReceiver.register(this);    }     @Override    protected void onDestroy() {        super.onDestroy();        mReceiver.unregister(this);    }}
结果如截图所示:

安装流程
只收到安装广播
卸载广播
只收到卸载广播
更新流程:
更新的时候先收到卸载的广播, 然后收到安装的广播, 最后收到更新的广播    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程