2

マルチアクティビティ アプリケーションがあります。アクティビティ A である種のイベントのリスナーを設定した後、イベントがリスナーをトリガーする前に (同じアプリ内の) 別のアクティビティ B に切り替えたとします。そのリスナーのステータスは何ですか?それは常に破壊されますか?それともイベントの種類による?それとも、アクティビティ A のメイン UI スレッド内でリスナーがセットアップされたかどうかに依存しますか? それとも他の条件?

編集:私が尋ねる理由は、アプリのスプラッシュ画面の開始時に、さまざまなアプリ内購入アイテムの購入状態を調べたいからです。これには、いくつかのコードを開始し、「ok_here_is_the_answer()」のリスナーを設定することが含まれます。問題は、スプラッシュ スクリーン アクティビティの期間よりも回答を取得するのに時間がかかるのではないかと心配していることです。その場合、アプリケーションの 2 番目のアクティビティで最初からやり直す必要がありますか?

4

2 に答える 2

1

リスナーが内部で作成されActivity A、そのコンテキストに密着している場合、アクティビティpauseがバックグラウンドに移行すると破棄されます。

アクティビティ全体で存続する必要がある操作を実行する場合は、application contextまたは専用の 内で定義できますservice

于 2013-03-04T11:26:11.260 に答える
0

これはあなたの質問に対する答えではないかもしれませんが、多くの正当な理由からスプラッシュアクティビティ(またはスプラッシュ)を使用するべきではありません。代わりにフルスクリーンダイアログを使用することをお勧めします。これも問題を解決します。

しかし、あなたの質問については、私たちが話しているリスナーの種類によって異なりますか?コンテキストに関係するものはすべて終わり、完了しました。ハンドラー、スレッドなどはまだ実行されています(afaik)。

于 2013-03-04T11:15:22.177 に答える