1

私のアプリには、ActivityA と ActivityB の 2 つのアクティビティがあります。それらは以下の AndroidManifest で指定されています。

<activity android:name=".ActivityA" android:label="@string/app_name" android:screenOrientation="landscape" 
    android:configChanges="orientation|keyboardHidden|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>
<activity android:name=".ActivityB" 
    android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden|screenSize" 
    android:windowSoftInputMode="stateAlwaysHidden"/>

問題のシナリオは次のとおりです。

  1. アプリを起動すると、ActivityA が表示されます。
  2. ActivityA から、ActivityB を開始し、ActivityA を閉じます。これで、タスク スタックには ActivityB のみが含まれるようになりました。
  3. ホームボタンを押すと、電話がホーム画面に移動します。
  4. ホームボタンを長押しして、履歴からアプリを選択します。
  5. 手順 4 の後、ActivityA が開始して表示され、タスク スタックの上部に ActivityA が、下部に ActivityB が含まれます。

ステップ 5 で非常に混乱しています。私が予想していたのは、アプリが既存のタスク スタック、つまりタスク スタック内の ActivityB のみを使用してフォアグラウンドに移動することです。Android がステップ 5 で ActivityA を開始するのはなぜですか?

ところで、クライアント ログには、ステップ 5 で以下のメッセージが含まれています。

10-26 21:29:04.070 V/HtcAppUsageStats( 275): (アプリ、パッケージを起動): (MyApp、com.example.myapp)

10-26 21:29:04.070 I/ActivityManager( 275): アクティビティの開始: 意図 { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x34500000 cmp=com.example.myapp /.ActivityA bnds=[0,566][540,662] (エキストラあり) } from pid 275

ご提案ありがとうございます。

4

2 に答える 2

1

ああ、私はこの Android バグを見ました、http://code.google.com/p/android/issues/detail?id=26658。根本原因のようです。

于 2012-10-29T21:01:22.570 に答える