私はかなり奇妙な問題に遭遇しました。抽象的なアクティビティの実装における奇妙な動作
抽象的なhandleEvent()メソッドを呼び出すことによって、いくつかのスレッドを作成し、ハンドラを使用してメッセージを処理するabstractアクティビティがあります。
特定のイベントでは、この抽象親アクティビティを実装する多くの子アクティビティの1つが、インテント(通常の方法)を使用して作成されます。
これらの子アクティビティのそれぞれは、抽象アクティビティのhandleEvent()メソッドを実装してオーバーライドします。
しかし、いずれかの子アクティビティのhandleEvent()メソッドは、最初のものを除き、決して呼び出されません!
誰かがこの現象を説明できますか?
はより明確にしようとすると:
抽象親がevent-> 抽象親がイベントを受け取る活動ChildAを作成して受信- >活動ChildBを作成 抽象親がイベントを受け取る - >
親がイベントを受け取る活動ChildCを作成します。 ChildBまたはChildCがアクティブなアクティビティであっても、handleEvent()は処理する必要がありますが、ChildAのhandleEventメソッドのみが呼び出されます。
誰でも?
ハンドラは抽象(親)アクティビティにあります。ハンドラはすべてのメッセージをうまく受信します。しかし、異なる子アクティビティで実装されたhandleEvent()メソッドを呼び出すときは、handleEvent()メソッドのうちの1つだけが実行されます。すべての子アクティビティのすべてのhandleEvent()メソッドが実行されると思います。 – DKIT
次に、いくつかのコードを提供する必要があります。アクティビティをどのように開始するのか、クラス階層は何かなど、あなたの質問からは分かりません。 –