私はgetIntent()を使ってバンドルされた情報を読み取るアプリケーションに取り組んでいます。バンドルフィールドの1つをnullに設定したいので、その後の再開時に変更されたインテントが受け取られますが、getIntent()から同じインテントを返すようにします。私は、バックキーが押された後で新しい意図が生成されたことに気付きましたが、そうでなければそれはありません。Android getIntent()は毎回onResume()で同じインテントを返します。バンドル内のintフィールドをクリアする方法は?
intent.getExtras().getInt("FLAG_FIELD") returns 1
intent.getExtras().setString("FLAG_FIELD", null);
アクティビティが再び再開すると、getInt()はnullの代わりに値を返します。バンドル内のIntフィールドをクリアする方法よりも確実です。ちょうど試してみました
更新:
intent.getExtras().putInt("FLAG_FIELD, -1);
また、これは動作しません。 getIntent()からのインテントのように見えるのは変更できません。
更新:アクティビティが表示される前にonResume()が連続して3回デバッガで呼び出されますか?だから私がここにフラグを設定しても、resume()コールが実際の表示の前に最後のものであるかどうかわからないので、状態を変えるのは難しいようです。
を働くあなたがこれを使用する関数を投稿することができますので、我々はいくつかを持っていますコンテキスト? – codeMagic
私はちょっと混乱しますが、 'intent.putExtra()'を使用するときに値を変更する必要があります。次にインテントを取得するときに変更されます。 – codeMagic
追加する唯一のものは、私がチェックインしているgetIntent )フィールドをonResume()に設定し、onResumeのフラグをクリアします。本当の質問はあなたがgetIntent()のバンドルを変更することができますか、それとも変わらないのでしょうか?それは変わらないように見えます。 –