ps:安装成功是有广播的,这里只介绍安装界面关闭的监听,曲线可以监听取消按钮(不通过 startActivityForResult())
大家都知道通过startActivityForResult()方法唤起系统的安装页面,通过 onActivityResult方法收到安装页面的取消事件。
但有些场景并不希望通过startActivityForResult()方式来唤起安装页面,例如想在service中唤起,并在service中收到事件的结果。
例如:要安装A.apk,唤起系统安装界面的时候启动一个计时器,每隔1或者2秒 查询一次 当前App是否在前台,是的话意味着结束了安装界面,再判断本地的packageinfo中是否包含A.apk的相关信息,如果没有就可以认为 是用户取消了安装。
代码
/**
* 关于唤起系统安装界面的代码就不贴。。
* 唤起系统安装界面的同时调用这个方法 启动计时器
* 回到前台,也就是安装页面消失后发送msg
*/
private void startInstallTimer(final TaskInfo info) {
mInstallTimer = new Timer();
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
if (isForeground()) {
Message message = Message.obtain();