0

私のアプリでは、 を呼び出して 5 秒後にビューの状態/表示を変更しようとしていますpostInvalidateDelayed(5000)

次の 2 つのシナリオでの動作について質問がpostInvalidateDelayed( )あります。onDraw( )

シナリオ 1:

  1. postInvalidateDelayed(5000) が、現在のアクティビティ「Activity A」のビュー「View V」に対して呼び出されました
  2. 無効化イベントが「ビュー V」に配信される前に、ユーザーが現在の「アクティビティ A」から離れます (つまり、「アクティビティ A」はまだアクティビティ スタックにあります)。
  3. ユーザーは戻るボタン/方法を使用して「アクティビティ A」に戻りますsuper.onBackPressed( )(つまり、「アクティビティ A」は再作成されません)。

シナリオ 2:

  1. postInvalidateDelayed(5000)現在のアクティビティ「アクティビティ A」でビュー「ビュー V」が呼び出されました
  2. ユーザーは、「ホーム」ボタンを押して無効化イベントを「ビュー V」に配信する前に、現在の「アクティビティ A」から移動します (つまり、「アクティビティ A」はまだアクティビティ スタックにあります)。
  3. ユーザーは、アプリケーションを再起動して「アクティビティ A」に戻ります (つまり、「アクティビティ A」は再作成されません)。

上記の 2 つのシナリオでは、無効化イベントが「ビュー V」に配信されますか、それとも無効化イベントが失われますか? これらのシナリオでは、無効化イベントが失われていることがわかりました。アクティビティ (アクティビティ A) が再開/再開されたときに、そのような無効化イベントを確実に配信できるようにする最善の方法は何でしょうか?

任意の入力をいただければ幸いです。ありがとう。

4

1 に答える 1

0

これの必要性は何ですか?を呼び出すことができpostInvalidateDelayed(5000)ますonResume()

于 2013-01-16T10:34:05.970 に答える