私はAndroidで少し遊んでいて、アクティビティとサービスを備えた小さなアプリを書いています。アクティビティはボタンクリックでサービスを開始し、URIからデータを取得して結果として返す必要があります。場合によっては、データが利用できないか、基準を満たさない場合、アクティビティがバックグラウンドであっても、X分ごとにサービスを再試行する必要があります。JobServiceからの結果を返すには?
アクティビティとサービスの間の通信は、Intent
とResultReceiver
(バンドルに渡されます)を介して実装しました。サービスを実装する際に、新しいJobScheduler
コンポーネントを使用したかったのですが、Parcelable
オブジェクト(ResultReceiver
)を追加できないPersistableBundle
のみを受け入れることができ、基本タイプのみを受け入れることができます。
ネットワークが利用可能になったときに実行されるジョブをスケジュールするサービスと、データをチェックするためにX分ごとにサービスを実行します。受け取ったデータは、のに返され、受け入れ可能かどうか、または再試行する必要があるかどうかを判断できます。サービスがデータを受け入れると、サービスはResultsReceiver
を介してアクティビティに返します。
私は(JobInfo.Builder
によって行わ)JobService
インスタンスを作成しないので、私はそれをコールバックオブジェクトへの参照を渡すことができないJobService
とResultsReceiver
を使用し、それができません。
スケジュールされたジョブとそれを呼び出したサービスとの間で通信するにはどうすればよいですか。
申し訳ありませんが、それは些細だ場合、私はAndroidのに慣れていないよ...
ありがとう!