8

アクティビティを開始し、インテントの putExtra() 関数を使用してメッセージを渡す通知があります。メッセージは、アクティビティの onCreate 関数でユーザーに表示されます。方向の変更によりアプリケーションが再起動されると、メッセージはインテントのバンドル データにまだあるため、再度表示されます。

余分なデータを削除するにはどうすればよいですか?

私は次のことを試しました:

Bundle bundle = getIntent().getExtras();
if (bundle.getBoolean("showMessage")) {
    // ... show message that is in bundle.getString("message")
    // remove message
    bundle.remove("showMessage");
}

しかし、方向が変更された後もメッセージは表示されます。使用された意図は私が変更したものではなく、元のもののようです。私が見つけた唯一の回避策は、 showMessage をさらに o に保存することですnSaveInstanceState()。別の方法はありますか?それとも、これが進むべき道ですか?

4

2 に答える 2

10

あなたのonSaveInstanceState()アプローチは正しい答えです、AFAIK。

于 2009-07-30T22:02:33.180 に答える