BroadcastReceiver を使用せずに Service と Activity の間でデータを渡す方法を知りたいです。
これは私が作ることができないものです:
- ブロードキャストを介して定期的にインテントを送信するサービスがあります。
- ブロードキャストレシーバーを待たずに、必要なときにアクティビティからこのインテントのエクストラを取得したいと考えています。
私はこのコードを使用しようとしました:
\\Service
String BROADCAST_ACTION = "ACTION";
Intent sendToUI = new Intent(BROADCAST_ACTION);
sendToUI.putExtra("key", "value");
sendBroadcast(sendToUI);
\\Activity
IntentFilter iF = new IntentFilter(MyService.BROADCAST_ACTION);
Intent intent = c.registerReceiver(null, iF);
Bundle extras = intent.getExtras();
if(extras != null){
String string = intent.getStringExtra("key");
}
しかし、私は常にnullpointerexception
理由を受け取ります(バンドルエクストラではなく、 LINEで受け取ります)。intent
null
nullpointerexception
Intent intent