这个问题与我原来的问题类似,但我认为有更好的方法来解决问题。
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中的信息来处理这个问题。
答案 0 :(得分:12)
我找到了一个似乎有效的解决方案,但我希望有更好的方法。
if (getIntent() != null && getIntent().getData() != null) {
String data = getIntent().getDataString();
getIntent().setData(null);
setIntent(null);
我认为setIntent
没有任何用处,但setData(null)
似乎可以解决问题。