Context
からService
を取得する信頼できる方法はありますか?
ACTION_PHONE_STATE_CHANGED
のブロードキャストレシーバーを登録したいのですが、この情報を常に取得するためにアプリを必要としないので、Manifest
に入れません。
ただし、この情報が必要なときにGCによってブロードキャストレシーバーを強制終了させることはできないため、Service
にブロードキャストレシーバーを登録しています。
したがって、registerReceiver()
を呼び出すにはContext
が必要です。 ACTION_PHONE_STATE_CHANGED
が不要になったら登録解除それ。
任意のヒント?
Service
はContextWrapper
を拡張し、これはContext
を拡張します。したがって、Service
はContext
です。サービスで'this'
キーワードを使用します。
Service
はContextWrapper
を拡張しますContextWrapper
はContext
を拡張しますそう....
Context context = this;
(サービスクラスまたはアクティビティクラス)
Service
はContext
であるため、変数コンテキストはthis
でなければなりません。
DataBaseManager dbm = Utils.getDataManager(this);
サービスはすでにコンテキストであるため
あなたもそれを手に入れることができます:
Context mContext = this;
OR
Context mContext = [class name].this; //[] only specify the class name
// mContext = JobServiceSchedule.this;