0

我可能有一个微不足道的问题,但我无法解决。如果我运行这段代码:

Uri packageURI = Uri.parse("package:"+name);
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);
boolean esiste = isPackageExists(name);
Log.i("Esiste", "Esiste il packeges? : "+esiste);
if (!esiste) { //code }

一切都很好,但是当执行starActivity()时,代码会启动应用程序但也会执行检查......我想在返回myapplication时执行检查......帮帮我

4

1 回答 1

0

由于每个应用程序都在自己的线程中运行,因此您的应用程序在调用删除操作后会继续运行。

您可以在被调用的活动关闭后进行检查,如下所示:
更改startActivity(uninstallIntent);startActivityForResult(uninstallIntent, 1);

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1){
            boolean esiste = isPackageExists(name);
            Log.i("Esiste", "Esiste il packeges? : "+esiste);
            if (!esiste) { //code }
        }
    }

如果通过startActivityForResultMethod调用 Intent,onActivityResult则从被调用的 Activity 返回后会被调用。该变量requestCode用于识别请求。

于 2013-03-22T09:48:06.463 回答