Как получить getIntent() для возврата null после операции, вызванной с набором намерений

Этот вопрос был похож на мой оригинальный вопрос, но я думаю, что есть лучший способ приблизиться к решению.

getIntent возвращает неправильное намерение, когда setIntent сопровождается вращением

В основном, в моей основной Activity, которая расширяет FragmentActivity, есть два экземпляра, где во Фрагменте я передаю намерение этой деятельности.

Это код, который имеет проблему:

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

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

setIntent была попыткой решить мою проблему, но она не сработала.

Что происходит, когда я нажимаю ссылку, которая возвращается к моей Деятельности как намерение, затем я перехожу к следующему фрагменту, затем поворачиваю телефон, намерение, которое было передано двумя фрагментами назад, появляется снова, когда я звоню getIntent.

Итак, когда я получаю данные из Intent, как я могу установить его, чтобы следующий вызов getIntent вернул значение null? Или, имеет смысл просто иметь данные в Intent вместо null?

Я пытаюсь избежать обновления информации в SharedPreferences, чтобы справиться с этим.

Ответ 1

Я нашел решение, которое работает, но я ожидаю, что есть лучший способ сделать это.

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

Я думаю, что setIntent не имеет никакого значения, но setData(null), похоже, делает трюк.