This question was similar to my original question, but I think there is a better way to approach a solution.
getIntent returns wrong intent when setIntent is followed by a rotation
Basically, in my main Activity
, which extends FragmentActivity
, there are two instances where in a Fragment I pass an Intent to this Activity.
This is the code that is having the problem:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(...);
if (getIntent() != null && getIntent().getData() != null) {
String data = getIntent().getDataString();
//setIntent(null);
The setIntent
was an attempt to solve my problem but it failed to work.
What happens is when I click on a link that goes back to my Activity as an Intent, then I go to the next Fragment, then I rotate the phone, the Intent that was passed two Fragments ago shows up again when I call getIntent
.
So, when I get the data out of the Intent, how can I set it so the next call to getIntent
will return null? Or, would it make sense to just have the data in the Intent be null instead?
I am trying to avoid updating information in the SharedPreferences to handle this.
I found a solution that appears to work, but I expect there is a better way to do it.
if (getIntent() != null && getIntent().getData() != null) {
String data = getIntent().getDataString();
getIntent().setData(null);
setIntent(null);
I think the setIntent
isn't of any use, but the setData(null)
seems to do the trick.