3

HandlerUIスレッドにリンクされているがあります。予想通り、私はpost() Runnableそれにsして、UIスレッドで実行させることができます。ボタンもあります。ボタンを押すと、が呼び出さfinish()れますActivity

finish()UIハンドラーのメッセージキューにどのように影響しますか?キュー内のすべてのメッセージを処理しますが、それ以上は受け入れませんか?何も実行せずにすぐに終了することを率直に拒否しますか(これは真実ではないと信じる理由があります)。が呼び出されるまで、sを引き続きRunnable投稿できますか?onDestroy()アクティビティスタックには単一のアクティビティのみが含まれていると想定する必要があります。

4

1 に答える 1

5

アプリがまだ稼働している間は、Runnable任意の方法でsをUIスレッドに投稿でき、実行されます。アクティビティを終了するだけです。UIスレッドはこれを気にしません。Handlerfinish()

ただし、表示されているアクティビティを終了すると、Androidがアプリを強制終了する可能性があり、その時点ですべてのデータ/ランナブル/スレッドが消去されます。

そのため、アクティビティを終了するとUIスレッドが停止(終了)する可能性がありますが、通常、Androidは、表示されているアクティビティや実行中のサービスがない場合でも、アプリをしばらくの間動作させ続けます。Androidは、リソースが不足している場合、アプリをすぐに強制終了します。

于 2013-03-11T13:16:39.273 に答える