android app更新弹窗,应用弹窗“此应用专为旧版Android打造,因此可能无法正常运行...”的原因...

本文探讨了在Android P上,应用启动时可能出现的"此应用专为旧版Android打造"警告弹窗的原因。主要原因是应用的targetSdkVersion低于17,系统会显示警告对话框。当targetSdkVersion低于Build.VERSION.MIN_SUPPORTED_TARGET_SDK_INT(默认17)时,AppWarnings.java的showDeprecatedTargetDialogIfNeeded方法会导致弹窗。一旦用户确认,系统将设置FLAG_HIDE_DEPRECATED_SDK,避免重复弹窗。
摘要由CSDN通过智能技术生成

Android P上,有的应用打开时,会弹出对话框,内容:“此应用专为旧版Android打造,因此可能无法正常运行。请尝试检查更新或与开发者联系”。用户会感到困惑,真正的原因是什么?

举例,如下图某应用,版本:6.072.001,

9dc825ac1c58

下面通过Android P源码,分析原因:

应用启动,startActivity时,流程会执行到realStartActivityLocked方法,代码位于ActivityStackSupervisor.java,可参考我之前一篇文章:startActivity启动流程的源码学习。

realStartActivityLocked方法中,会调用AppWarnings.java的onStartActivity方法,如下:

final boolean realStartActivityLocked(ActivityRecord r, ProcessRecord app, boolean andResume, boolean checkConfig) throws RemoteException {

try {

// ...

mService.getAppWarningsLocked().onStartActivity(r);

// ...

} catch (RemoteException e) {

// ...

}

}</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值