アクティビティ内のサービスを呼び出しますが、アプリケーションを閉じると、サービスが閉じられます。無限のライフサイクルサービスを作成するにはどうすればよいですか?そして、BroadcastReceiverでアクティビティを呼び出すにはどうすればよいですか?
3 に答える
そのようなものを作ることはできません。
最も近い方法は、サービスをフォアグラウンドに設定することです。http://developer.android.com/guide/components/services.html#Foregroundを参照してください。
無限のライフサイクルサービスを作成するにはどうすればよいですか?
できません。OSは、適切であると判断したときにプロセスを終了します。これには、タスクキラーアプリケーションなどを介して、ユーザーが要求したときにプロセスを終了することも含まれます。これを念頭に置いてアプリケーションを設計してください。
そして、BroadcastReceiverでアクティビティを呼び出すにはどうすればよいですか?
BroadcastReceiver
を介してアクティビティによって登録された場合、がアクティビティの内部クラスであるregisterReceiver()
場合BroadcastReceiver
、Javaの内部クラスと同様に、通常どおりアクティビティのメソッドを呼び出すことができます。
アクティビティを停止した後もサービスを実行し続ける場合は、bindServiceではなくstartServiceを使用してサービスを開始します。もう一度停止することを忘れないでください。
startActivityはアクティビティを開始しますsendBroadcastはBroadcastReceiverを開始しますstartServiceはアクティビティを開始します。