onactivityResult在错误的时间被调用

时间:2016-02-24 12:30:32

标签: android fragment onactivityresult startactivityforresult

我正在使用此代码

      final Intent i = new Intent();
      i.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
      i.addCategory(Intent.CATEGORY_DEFAULT);
      i.setData(Uri.parse("package:" + context.getPackageName()));
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
      i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
      parentFragment.startActivityForResult(i, Constants.PERMISSIONS);

让用户可以选择在运行时更改设置。当用户单击按钮时会出现此代码。 我想要做的就是获取他所选择的信息,因为我使用 onActivityResult 方法。但是我注意到,当用户点击按钮并进入设置屏幕时,会调用此方法。

此代码可在Fragment中找到,而不在Activity中。

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题。正如我在我的问题中提到的那样 - 在startActivityForResult之后立即调用了onActivityResult。

此问题的原因是 i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);