Android-ブロードキャストレシーバーonReceive()からコンテキストを取得して送信する


82

基本的に、インテントを作成して、BroadcastReceiverのonReceive()からサービスに渡したいと思います。

これまでは常にView.getContext()を使用していましたが、ここでは行き詰まります。使用できるように、どの程度正確にコンテキストを取得できますpublic Intent (Context packageContext, Class<?> cls)か?

回答:


302
public abstract void onReceive(Context context, Intent intent)

onReceiveあなたにコンテキストを与えます。これ以上何が欲しいですか?


8
まじめな話、これを見るまで見なかった。
ブラサンカ2018年

2

さて、上記の答えは役に立ちません。onReceiveにいる限り、コンテキストを使用できます。onReceiveからコードが返されると、コンテキストは存在しなくなります。

したがって、問題ステートメントは、インテントの作成でこのコンテキストを使用してサービスを開始し、次にこのコンテキストオブジェクトでstartServiceを呼び出すことを示しています。それはできません。

BroadcastReceiverのコンテキストで実行できることと実行できないことを読んでください。

http://developer.android.com/reference/android/content/BroadcastReceiver.html


あなたが言ったことは真実ではありません。BroadcastReceiversからサービスを開始することはできますが、それらにバインドすることはできません。
Bardya Momeni 2016年

0

BroadcastReceiverでは

onReceive(Context context, Intent intent)

メソッドはコンテキストを提供します

そう

アクティビティの使用を開始するには

context.startActivity(intent);

とサービスの使用を開始するには

context.startService(intent);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.