android - 使用包安装程序更新时应用程序崩溃
问题描述
类似问题:在 Android 10 设备上安装更新的 apk 并将相同的应用程序置于前台
我正在使用包安装程序来更新我的应用程序。Apk 存储在服务器上,如果有可用更新,应用程序会自动下载它。Apk 下载正常,应用程序也在后台更新。但是,当应用最后收到 PackageInstaller.STATUS_PENDING_USER_ACTION 的状态消息时,应用在 onNewIntent 函数中崩溃。
该应用程序应显示安装过程,但它崩溃了。但是,再次启动应用程序时,它已更新。
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Bundle extras = intent.getExtras();
if (PACKAGE_INSTALLED_ACTION.equals(intent.getAction())) {
int status = extras.getInt(PackageInstaller.EXTRA_STATUS);
String message = extras.getString(PackageInstaller.EXTRA_STATUS_MESSAGE);
Log.i("shaheryar", "Status is:" + status);
switch (status) {
case PackageInstaller.STATUS_PENDING_USER_ACTION:
Intent confirmIntent = (Intent) extras.get(Intent.EXTRA_INTENT);
startActivity(confirmIntent);
break;
case PackageInstaller.STATUS_SUCCESS:
updateView.setVisibility(View.GONE);
navigateToLoginScreen();
break;
case PackageInstaller.STATUS_FAILURE:
break;
case PackageInstaller.STATUS_FAILURE_ABORTED:
case PackageInstaller.STATUS_FAILURE_BLOCKED:
break;
case PackageInstaller.STATUS_FAILURE_CONFLICT:
break;
case PackageInstaller.STATUS_FAILURE_INCOMPATIBLE:
break;
case PackageInstaller.STATUS_FAILURE_INVALID:
break;
case PackageInstaller.STATUS_FAILURE_STORAGE:
break;
default:
Toast.makeText(this, "Unrecognized status received from installer: " + status,
Toast.LENGTH_SHORT).show();
}
}
}```
P.S. Additional Info: (If I run the app on my emulator by simply running it shows that there is a problem in signing certificate which is true as the Apk on the server is release while app runs on emulator Is debug). Which means that it returns back to newIntent function is there is Install conflict
解决方案
推荐阅读
- c++ - 如何更改 QTreeView 小部件中的图标
- typescript - 从数组中提取嵌套属性
- android - 在 Delphi 10.4.2 中使用 Google Analytics GA4
- java - Java Spring Data OneToMany 关系芯片错误
- stm32 - 如何查看我的 STM32 引导加载程序的功能
- docker - 尝试使用带有 Firefox 浏览器的 Docker-compose 容器运行测试收到错误消息
- python - 将文本文件转换为以行号为值的字典
- rust - 如何通过可变关联方法递归(用于递归下降解析器实现)?
- python - 创建TF记录----ModuleNotFoundError: No module named 'tensorflow'
- python - 如何在python中创建有状态服务器