如何在android中安装后删除apk

时间:2017-10-09 20:22:01

标签: android apk

我编写了一个应用更新程序库,如果有新版本,可以从远程主机下载更新的apk。然后提示用户安装apk。我想知道是否有任何方法来监听安装完成,以便我可以在安装后删除apk?此外,接收更新的应用程序是当前正在运行的应用程序,我不知道这是否意味着在更新安装发生时应用程序被终止。

1 个答案:

答案 0 :(得分:0)

正如CommonsWare在评论中所说,我需要使用startActivityForResult然后onActivityResult将在下次应用打开时调用。这就是我所做的。

@Override
public void onInstallClick() {
    File file = new File(getActivity().getFilesDir(), mParameters.getPackageName() + ".apk");

    if (!file.exists())
        return;

    Uri uri = FileProvider.getUriForFile(getActivity(), BuildConfig.APPLICATION_ID + ".provider", file);

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(uri);
    intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    intent.putExtra(Intent.EXTRA_RETURN_RESULT, true);
    startActivityForResult(intent, REQUEST_INSTALL);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_INSTALL) {
        if (resultCode == Activity.RESULT_OK) {
            File file = new File(getActivity().getFilesDir(), mParameters.getPackageName() + ".apk");

            if (file.exists())
                file.delete();
        }
    }
    super.onActivityResult(requestCode, resultCode, data);
}