インテントを使用して2つのアクティビティ間で通信することは、簡単ではないようです。どこにいても(おそらくonResume()で)インテントのチェックを行うと、startActivity()に沿ってインテントの受け渡しが行われた呼び出しとデバイスが回転したときの呼び出しを区別できない状況になります(または、インテントがまだ使用可能であるため、後でonPause()およびonResume()サイクルを実行します)。
上記の問題にどのように対処しますか?
インテントを使用して2つのアクティビティ間で通信することは、簡単ではないようです。どこにいても(おそらくonResume()で)インテントのチェックを行うと、startActivity()に沿ってインテントの受け渡しが行われた呼び出しとデバイスが回転したときの呼び出しを区別できない状況になります(または、インテントがまだ使用可能であるため、後でonPause()およびonResume()サイクルを実行します)。
上記の問題にどのように対処しますか?
あなたはいつでもできる
受け取ったインテントを変更します。したがって、エクストラを追加したり、まったく異なるインテントを設定したりできます。次に getintent を実行すると、設定したインテントが取得されます
アクティビティを呼び出したインテントを常に取得します。ディスプレイの回転などの構成変更では、onConfigurationChanged
が呼び出されます。ここをチェックしてください:http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange
それを使用して、回転の変化かどうかを区別できます。