私はこれを求めて、Android用のMonoのボウルについてより深い洞察を得て、モバイルアプリをサポートする際の準備を整えてください...
「メインランチャー」アクティビティで開始されたワーカースレッドからStartServiceを呼び出すと、サービスのOnStartCommandのスレッドIDがアクティビティスレッドID(1)と同じであり、それを開始したワーカースレッドのIDではないことに気付きました( 3)。
より抽象的な表現は次のとおりです。
myActivity : Activity
{
OnCreate
{
print_thread_id() // 1
start(thread_func)
}
thread_func()
{
print_thread_id() // 3 (not 2!, but anyway ...)
StartService(myService)
}
}
myService : Service
{
OnStartCommand
{
print_thread_id() // 1 also!!!
}
}
また、ワーカースレッドthread_func内で、サービスが引き続き実行されている場合でもStartServiceが返されることに気付きました。StartServiceの呼び出しは、myServiceが終了するまでブロックされると思いました。
myService.OnStartCommandのスレッドIDがthread_funcのものと同じではないのはなぜですか?thread_funcは、StartServiceの呼び出しが行われる親であるのではありませんか?
ありがとう。