重新安装并重新启动Android应用程序

重新安装并重新启动Android应用程序,android,Android,我正在创建一个Android应用程序,我希望用户在不使用Google Play Store的情况下更新该应用程序 首先,如果有新版本,应用程序将从Internet下载和.apk文件。那部分有效 现在我希望应用程序安装.apk文件。我正在使用以下代码: Intent i = new Intent(); i.setAction(Intent.ACTION_VIEW); i.setDataAndType(Uri.fromFile(downloadedAPKfile), "application/vnd

我正在创建一个Android应用程序,我希望用户在不使用Google Play Store的情况下更新该应用程序

首先,如果有新版本,应用程序将从Internet下载和.apk文件。那部分有效

现在我希望应用程序安装.apk文件。我正在使用以下代码:

Intent i = new Intent();
i.setAction(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(downloadedAPKfile), "application/vnd.android.package-archive");
Log.d("Lofting", "About to install new .apk");
context.startActivity(i);
Android操作系统善意地要求用户覆盖当前应用程序,这很好。我假设用户选择了“OK”或“Install”之类的选项

重新安装后,我想自动重新启动应用程序:

Intent startActivity = new Intent(context, MyActivity.class);
int pendingIntentId = new Random().nextInt(Integer.MAX_VALUE);
PendingIntent pendingIntent = PendingIntent.getActivity(this, pendingIntentId, startActivity, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager mgr = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + delay, pendingIntent);
System.exit(0);
如果我只是将这两个代码段连接起来,重新安装就会开始,但应用程序会立即重新启动


如何强制应用程序等待重新安装就绪,然后重新启动应用程序?

转储现有的重新启动逻辑。在您的清单中为添加一个带有
。我调用
Context.startActivity(Intent)
,它必须具有启动逻辑。因此,请从您的
广播接收器执行此操作。