能够发现,当apk安装完毕之后,我们会更新UI。显示完毕和打开button,是不是和我们平时安装apk的逻辑相应上了?这时候我们能够看一下这两个button的点击事件。
public void onClick(View v) {
if(v == mDoneButton) {
if (mAppInfo.packageName != null) {
Log.i(TAG, "Finished installing "+mAppInfo.packageName);
}
finish();
} else if(v == mLaunchButton) {
startActivity(mLaunchIntent);
finish();
}
}
好吧,比较简单,点击完毕button,直接finish掉这个activity,点击打开,则直接调用startActivity启动安装的应用。然后直接finish自身。解析xml android
总结:
代码中运行intent.setDataAndType(Uri.parse(“file://” + path),”application/vnd.android.package-archive”);能够调起PackageInstallerActivity;
PackageInstallerActivity主要用于运行解析apk文件,解析manifest,解析签名等操作;
InstallAppProcess主要用于运行安装apk逻辑,用于初始化安装界面,用于初始化用户UI。并调用PackageInstaller运行安装逻辑;
InstallAppProcess内注册有广播,当安装完毕之后接收广播,更新UI。显示apk安装完毕界面;
另外对android源代码解析方法感兴趣的可参考我的:
android源代码解析之(一)–>android项目构建过程
android源代码解析之(二)–>异步消息机制
android源代码解析之(三)–>异步任务AsyncTask
android源代码解析之(四)–>HandlerThread
android源代码解析之(五)–>IntentService
android源代码解析之(六)–>Log
android源代码解析之(七)–>LruCache
android源代码解析之(八)–>Zygote进程启动流程
android源代码解析之(九)–>SystemServer进程启动流程
android源代码解析之(十)–>Launcher启动流程
android源代码解析之(十一)–>应用进程启动流程
android源代码解析之(十二)–>系统启动并解析Manifest的流程
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-77978-9.html
期待你带给我们更多更好的作品
一直不动的抱那只股票可以赚钱
好喜欢