приемник вещания не получает намерения от службы - PullRequest
0 голосов
/ 29 июня 2018

Я искал SO и даже нашел вопрос с более или менее тем же названием, что и мой вопрос. Но мой код все еще не работает.

Я пытаюсь отправить позицию из моей службы GPS в MainActivity с использованием широковещательной передачи.

В моем сервисе GPS я делаю

Intent intent = new Intent(MainActivity.EXTRA_NEW_POS_FOR_PLOTTING_INTENT);
            intent.putExtra(MainActivity.EXTRA_NEW_POS_FOR_PLOTTING, new LatLng(location.getLatitude(), location.getLongitude()));
            LocalBroadcastManager.getInstance(this).sendBroadcast(intent);

На принимающей стороне в MainActivity.onCreate () я делаю:

mBroadcastReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                LatLng pos = intent.getExtras().getParcelable(EXTRA_NEW_POS_FOR_PLOTTING);
                newLocForPlotting(pos);
            }
        };

А в MainActivity.onStart () у меня есть:

LocalBroadcastManager.getInstance(this).registerReceiver(mBroadcastReceiver, new IntentFilter(EXTRA_NEW_POS_FOR_PLOTTING_INTENT ));

Я знаю, что мой сервис вызывает sendBroadcast (), но мой onReceive () никогда не вызывается.

Что не так?

1 Ответ

0 голосов
/ 29 июня 2018

вставьте этот код в метод деятельности onResume.

LocalBroadcastManager.getInstance(this).registerReceiver(mBroadcastReceiver, new IntentFilter(EXTRA_NEW_POS_FOR_PLOTTING_INTENT ));

Вы также можете использовать локальную трансляцию вот так

Intent intent = new Intent(BundleTags.BROADCAST_TAG_FOR_INCOMING_CALL_REQUEST);
            // You can also include some extra data.
            intent.putExtra(RESPONSE_MESSAGE, body);

LocalBroadcastManager.getInstance(this).sendBroadcast(intent);

В деятельности

 LocalBroadcastManager.getInstance(ServiceProviderActivity.this).registerReceiver(myReceiver,
                new IntentFilter(BROADCAST_TAG_FOR_INCOMING_CALL_REQUEST));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...