如何获取 getIntent() 在使用 Intent 集调用的活动后返回 null

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

getIntent 在 setIntent 后跟一个旋转时返回错误的意图

基本上,在我的主要扩展中,有两个实例,在片段中,我将意图传递给此活动。ActivityFragmentActivity

这是有问题的代码:

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

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

这是试图解决我的问题,但它失败了。setIntent

发生的事情是,当我点击一个链接,该链接返回到我的活动作为意图,然后我转到下一个片段,然后我旋转手机,当我呼叫时,两个片段之前传递的意图再次显示。getIntent

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

我试图避免更新共享首选项中的信息来处理此问题。


答案 1

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

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

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


答案 2

推荐