この質問は私の元の質問に似ていましたが、解決策にアプローチするより良い方法があると思います.
setIntent の後にローテーションが続くと、getIntent が間違ったインテントを返す
基本的に、Activity
extendsFragmentActivity
である main には、 Fragment で Intent をこの Activity に渡すインスタンスが 2 つあります。
これは問題が発生しているコードです:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(...);
if (getIntent() != null && getIntent().getData() != null) {
String data = getIntent().getDataString();
//setIntent(null);
これsetIntent
は私の問題を解決する試みでしたが、うまくいきませんでした。
インテントとしてアクティビティに戻るリンクをクリックすると、次のフラグメントに移動し、電話を回転させると、2 つのフラグメント前に渡されたインテントが再び表示されますgetIntent
。
では、Intent からデータを取得するときに、次の呼び出しでgetIntent
null が返されるように設定するにはどうすればよいでしょうか? または、代わりに Intent のデータを null にすることは理にかなっていますか?
これを処理するために SharedPreferences の情報を更新しないようにしています。