2017-01-07 29 views
0

私はアンドロイドアプリでコンテンツオブザーバに登録する必要があるユースケースがあります。 私のアプリが閉鎖されるまでアプリのスタートから聴きたいですが、私のアプリケーションにはオブザーバーの登録や登録解除に最適な場所がたくさんあります。コンテンツビューアに登録して登録するのに最適な場所/方法

基本アクティビティのonResumeとonPauseでこれを行うと、登録と登録解除が頻繁に行われます(ユーザーの操作中にアクティビティも変更されるため)。

ありがとう、 Rishi。

答えて

0

複数のアクティビティを対象にしたい場合は、サービスを使用します。各アクティビティでサービスが開始されている(すでに実行されている場合は2番目のサービスが開始されません)。そのオブザーバーからデータにアクセスする必要がある場合は、バインダーを使用してAPIを定義し、サービスにバインドします。

+0

答えをいただきありがとうございます。 私が利用したいContentObserverにコールバックがあります。もしあれば、私が "サービス"から得たいと思うようなデータはありません。 しかし、サービスの作成はどのように問題に役立ちますか? 私は、アプリの起動直後に観察を開始し、アプリが終了した後に停止するものが必要です。 – Rishi

+0

開始されたサービスは、停止するまで存在します。つまり、1つのアクティビティが停止していても別のアクティビティが開始されていても引き続き存在します。その目的は、アクティビティが実行されているかどうかにかかわらず必要なタスクを実行すること、またはアプリケーション内の複数のアクティビティによって結果が必要なタスクを実行することです。 JobSchedulerを使用して、コンテンツリゾルバのJobServiceをスケジュールすることも考えられます。 –

+0

私は、JobSchedulerの部分の を参照してください: 私はちょうど私がコンテンツオブザーバから "onChange"コールバックを得るとき、メソッド(基本的には状態の少ないメソッド)を起動する静的utilを持つことができます。 JobSchedulerはここに追加されますか? – Rishi

関連する問題