14

这个问题与我最初的问题相似,但我认为有更好的方法来解决问题。

当 setIntent 后跟旋转时,getIntent 返回错误的意图

基本上,在我的 mainActivity扩展FragmentActivity中,有两个实例在 Fragment 中我将 Intent 传递给该 Activity。

这是有问题的代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(...);

    if (getIntent() != null && getIntent().getData() != null) {
        String data = getIntent().getDataString();
        //setIntent(null);

setIntent是试图解决我的问题,但没有奏效。

发生的情况是,当我单击一个链接,该链接作为 Intent 返回到我的 Activity,然后转到下一个 Fragment,然后旋转手机,两个 Fragment 之前传递的 Intent 在我调用时再次出现getIntent

那么,当我从 Intent 中获取数据时,如何设置它以便下一次调用getIntent将返回 null?或者,将 Intent 中的数据改为 null 是否有意义?

我试图避免更新 SharedPreferences 中的信息来处理这个问题。

4

1 回答 1

14

我找到了一个似乎可行的解决方案,但我希望有更好的方法来做到这一点。

    if (getIntent() != null && getIntent().getData() != null) {
        String data = getIntent().getDataString();
        getIntent().setData(null);
        setIntent(null);

我认为setIntent没有任何用处,但setData(null)似乎可以解决问题。

于 2012-11-14T03:06:56.683 回答