我正在创建一个Android应用程序,我希望用户在没有Google Play商店的情况下更新应用程序。
如果有新版本,首先应用程序从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 OS恳请用户覆盖当前的应用程序,这很好。我假设用户选择" OK"或"安装"什么的。
重新安装后,我想自动重启应用程序:
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);
如果我只是连接这两个片段,则会重新启动重新启动,但会立即重新启动应用程序。
如何强制应用程序等待重新安装准备就绪,然后重新启动应用程序?