如何在使用Intent集调用Activity后使getIntent()返回null

时间:2012-11-14 02:50:44

标签: java android android-intent orientation-changes

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

getIntent returns wrong intent when setIntent is followed by a rotation

基本上,在扩展Activity的主FragmentActivity中,有两个实例在片段中我将Intent传递给此活动。

这是遇到问题的代码:

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

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

setIntent试图解决我的问题,但无法正常工作。

当我点击一个链接回到我的Activity作为Intent,然后我转到下一个Fragment,然后我旋转手机,那个通过了两个Fragments之前的Intent再次出现时我会打电话getIntent

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

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

1 个答案:

答案 0 :(得分:12)

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

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

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