如何将对象从intent传递给onActivityResult()方法

时间:2017-08-13 21:22:43

标签: android android-intent

我正在尝试创建一个卸载程序,到目前为止一切正常,但问题是:我想在卸载后刷新应用程序列表,这就是我想出的:

private void uninstallApps(List<Apps> apps) {
for (AppModel app : apps) {
    Uri uri = Uri.fromParts("package", app.getPackageName(), null);
    Intent intent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, uri);
    startActivityForResult(intent, 1);
    }
}

然后

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

}

我如何通过&#34; app&#34;从uninstallApps()到onActivityResult()的变量?

2 个答案:

答案 0 :(得分:0)

  

如何将“app”变量从uninstallApps()传递给onActivityResult()?

您可以将它存储在活动或片段类的字段中,无论您在哪里呼叫<script type="text/javascript"> $(document).ready(function(){ var urlGet = document.referrer; var frameLocation = urlGet.match(/:\/\/(.[^/]+)/)[1]; var whiteLocation = "<?php echo $ShowMyDomain; // prints mywebsite.com ?>"; if (whiteLocation!=frameLocation) { $('#adprimary').remove(); } }); </script> 并期待startActivityForResult()回调。

答案 1 :(得分:0)

我们不会在使用startActivityForResult

Intent.ACTION_UNINSTALL_PACKAGE时获取详情

如果您的意图如下所示,如果您的意图如下所示,您将在`onActivityResult中获得Intent.EXTRA_RETURN_RESULT,但我们也应该关注这种情况,因为如果用户没有卸载app然后我们将在intent中获得null值,因此我们应该每次都检查null for intent数据。

android.intent.extra.INSTALL_RESULT

如果您想根据任何应用程序的卸载刷新列表,最佳位置是广播接收器

intent.putExtra(Intent.EXTRA_RETURN_RESULT, true);

如果您在广播中添加此过滤器,您将获得广播,因为您可以获取卸载应用程序的包详细信息。

<action android:name="android.intent.action.PACKAGE_REMOVED" />