アプリケーションには次のアクティビティ構造があります
アプリケーションが起動すると、単純な「スプラッシュ画面」アクティビティが開始されます(これを「スプラッシュ」と呼びます)。このアクティビティは、ユーザーがボタンを押すとメインアクティビティを開始します(これを「メイン」と呼びます)。
Mainは、メニューから2つのアクティビティを開始できます。最初のアクティビティは単純なフォームを表示し(これを「フォーム」と呼びます)、2番目のアクティビティはマップを表示するMapActivity(「マップ」と呼ばれます)です。
Main、Form、およびMapは、マニフェストでまったく同じように宣言されています。
<activity android:name="fully qualified activity class"
android:screenOrientation="landscape"
android:configChanges="keyboard|keyboardHidden|orientation"
>
<intent-filter>
<action android:name="android.intent.action.DEFAULT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Mainがアクティブで、Formを起動して「戻る」を押すと、Mainが再び起動します。もう一度「戻る」を押すと「スプラッシュ」が表示されます。ここでは何も奇妙なことはありません。
ここで奇妙な部分があります。メインにいるときにマップを開始し、「戻る」を押すと、メインが期待どおりに表示されます。ただし、もう一度「戻る」を押すと、メインが再起動します。スプラッシュに戻るには、「戻る」を2回押す必要があります。
したがって、Mapアクティビティを開始すると、どういうわけかMainがアクティビティスタックに2回表示されますが、Formアクティビティは開始されないようです。
フォームとマップはどちらも次のように開始されます。
startActivity(new Intent(this, MyActivity.class));
私はどの活動でもバックキーをキャッチしません。
何が起こっているのか、またはこれをデバッグする方法についての手がかりはありますか?