У меня проблема с регистрацией broadcastReceiver
между моей Активностью и моей Службой, которая определена в другом процессе в моем манифесте.
Я пробовал другие советы, такие как handlers
или ContentProvider
для общения, но это не сработало, как я ожидал. На самом деле я хочу получать данные постоянно.
Вот мой код в моей службе:
Intent locationIntent = new Intent("LocationIntent");
locationIntent.setAction("updatedLocations");
locationIntent.setClass(getApplicationContext(), MapBoxActivity.class);
locationIntent.putExtra("list",updatedList);
sendBroadcast(locationIntent);
, и я регистрирую его в OnCreate
моей активности:
updatedLocationBroadcast = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Timber.tag("localB").d("registered!");
if (intent != null && intent.getAction() != null && intent.getAction().equals("updatedLocations")) {
sawLocationsList = (HashMap<Integer, MarkerItem>)intent.getSerializableExtra("list");
Timber.tag("sawL").d("updated" + sawLocationsList.toString());
}
}
};
registerReceiver(updatedLocationBroadcast , new IntentFilter("updatedLocations"));
Как я и ожидал, я хотелчтобы увидеть мои broadcastReceiver
регистры и мои Timber
журналы localB registered!
, которые определены в моем приемнике, но не работают.
Итак, как лучше всего обмениваться данными между Activity и Service, определенными в другом process
, и получать данные непрерывно ???
Примечание: моя служба получает данные с сервера, но сервер неrealTime, поэтому я проверяю данные, периодически запрашивая у сервера команду handlers
.