0

以下の2つのアクティビティがあります。

public class MainActivity extends Activity {
    ....


    profile.login(new onCallback()) {
        @Override
        public void onResult(int result) {
            final Intent i = new Intent(MainActivity.this, DetailActivity.class);
            startActivity(i);
        }
    }

    ....

}


public class DetailActivity extends Activity {
    ....
}

profile.login が AsyncTask で実行され、結果がある場合はコールバックされます。結果が受信されると、2 番目のアクティビティが開始されます。

トラブルの手順は次のとおりです。

  1. MainActivity で、ログイン ボタンを押します。
  2. 戻るを押してアプリを閉じます。
  3. アプリは閉じられますが、しばらくすると 2 番目のアクティビティがポップアップし、すぐに強制終了されます。

ライフ サイクル イベントをトレースすると、logcat は次のように表示します。

  1. MainActivity.onClickLogin
  2. DetailActivity.onCreate を開始しました。
  3. DetailActivity.onCreate が終了しました。
  4. MainActivity.onDestroy を開始しました。
  5. MainActivity.onDestroy が終了しました。

これは非常に時間依存であり、「DetailActivity.onCreate が終了しました」と画面が表示されない間にのみ発生します。DetailActivity 画面が表示されたら、Back を押しても MainActivity は破棄されません。期待どおりに DetailActivity を破棄するだけです。

  1. MainActivity.onClickLogin
  2. DetailActivity.onCreate を開始しました。
  3. DetailActivity.onCreate が終了しました。
  4. DetailActivity.onDestroy を開始しました。
  5. DetailActivity.onDestroy が終了しました。

私の質問は:

DetailActivity は既に作成されている (onCreated が終了している) ため、back キー イベントを DetailActivity に送信して破棄する必要がありますか? キーが MainActivity に送信されるのはなぜですか?

これに対抗する方法はありますか?

私が取り組んでいる Android のバージョンは 4.0.x です

4

1 に答える 1

0

ヘッダーとフッターを作成します。1 つの画像を設定し、onclick リスナーにコードを記述します...

于 2013-01-10T12:22:34.137 に答える