複数のアクティビティとサービスがあるシナリオがあります。このすべてのアクティビティは、任意の URL からデータを取得する必要がある場合にサービスを開始し (アクティビティclass name
はインテントで渡されます) 、応答を取得するときにサービスによって送信されるBroadcastReceiver
リッスンする を登録します。応答とともに Intentで back を渡します。responseIntent
Service
class name
私はこれを実装しましたが、動作します。しかし、疑問は、BroadcastReceiver
の onReceive()
メソッドから、ブロードキャスト イベントを受け取ったアクティビティのメソッドをどのように呼び出すことができるかということです。
注:オブジェクトではなくクラス参照を扱いたいです。私はこれを試しました、
public void onReceive(Context context, Intent intent) {
Class<?> thisActivity = Class.forName(intent.getStringExtra("ClassName"));
thisActivity.hello(); // hello() is a public and static method
}
しかし、うまくいきません。
ありがとうございました。