ここのステータス通知ドキュメントで私は読んだ:
バックグラウンドサービスは、ユーザーの操作を受け取るために、それ自体でアクティビティを起動してはなりません。代わりに、サービスは、ユーザーが選択したときにアクティビティを起動するステータス通知を作成する必要があります。
なぜこれは「すべきではない」のですか?
前もって感謝します
サービスはバックグラウンドで発生するため、サービスの実行中にユーザーが何か他のことをしている可能性が非常に高くなります。アクティビティをその上にドロップするだけで彼らが行っていたことを中断すると、彼らはせいぜい混乱し、最悪の場合はイライラします。
通知を使用することをお勧めします。これは、アクティビティを開始するようにユーザーに警告されますが、通知バーをタップすることで、準備ができたらいつでも「自分の時間に」開始することを選択できるためです。
あなたのサービスは、ユーザーとの対話を望んでいる瞬間にユーザーが何をしているのかを知りません。ユーザーが別のアプリケーションを使用している場合、新しいアクティビティを作成すると、他のアプリケーションが強制終了され(または少なくともスリープ状態になり)、ユーザーの邪魔になる可能性があります(ゲームをしている場合はゲームを強制終了できますが、もっと深刻なことをしている場合は、さらにダメージを与える)。
ユーザーエクスペリエンスの観点から考えられます。バックグラウンドプロセスからアクティビティを開始すると、ユーザーにとっては見た目も違和感もあります。アプリが優先されるように、ユーザーが何をしているのか途中で停止するのは非常に邪魔です。ステータスバーの通知により、必要に応じて応答するか、適切と思われる限りアクションを無視するかを選択できます。