アプリケーションのメインアクティビティによって開始および停止される長時間実行されるサービスがありますが、このサービスはアラームによって更新されます。
いつでもサービスのインスタンスを 1 つしか実行できないとどこかで読んだことがあると思いますが、アクティビティと Alarm's Reviver の両方からサービスを開始できますか? その場合、GC はサービスの古いインスタンスを処理しますか、または2番目の呼び出しが同じインスタンスを開始するため、古いインスタンスはありませんか?
ありがとう
バインドされたサービスではなく、開始されたサービスを使用していると仮定します。startService()
初めて呼び出すと、サービスが「作成」されます(つまり、 onCreate()
)が呼び出されます。その後、を呼び出すたびstartService()
に、onStartCommand()
が呼び出されます。
そうです-サービスの単一のインスタンスがいつでも実行されています。とのstartService()
両方から呼び出すことができます。インテントがすでに作成されている場合は、インテントがに配信されます。それ以外の場合は、が作成されてから配信されます。Activity
AlarmReceiver
Service
Service
Intent