Я хочу иметь Broadcast Receiver
для получения информации о местоположении для еще не начатого действия. В основном у меня есть место, которое я получаю в одном действии. Когда я нажимаю кнопку FAB, я хочу взять местоположение, которое я получил в первом действии, и передать его в действие, которое выполняет кнопка FAB, чтобы я мог использовать местоположение в этом действии. Вот моя попытка:Получать трансляцию за активность еще не началась?
LocationServices.java: Здесь я получаю и передаю location
.
@Override
public void onLocationChanged(Location location) {
if (location.hasAccuracy()) {
if (location.getAccuracy() < 30) {
locationUpdateListener.updateLocation(location);
Intent broadcastIntent = new Intent(LocationService.ACTION_LOCATION);
broadcastIntent.putExtra("latitude", location.getLatitude());
broadcastIntent.putExtra("longitude", location.getLongitude());
activity.sendBroadcast(broadcastIntent);
}
}
}
CreatePost.java: Вот где я хочу, чтобы в идеале захватить место, которое транслировалось и использовать его в этом файле, но onReceive
никогда не вызывается. Действие создается, когда пользователь нажимает кнопку FAB.
@Override
public void onResume() {
super.onResume();
locationReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
try {
if(location == null) {
location = new Location("Provider");
}
location.setLatitude(intent.getDoubleExtra("latitude", 0.0));
location.setLongitude(intent.getDoubleExtra("longitude", 0.0));
} catch (Exception e) {
e.printStackTrace();
}
}
};
registerReceiver(locationReceiver, new IntentFilter(LocationService.ACTION_LOCATION));
}
Есть ли способ, чтобы отправить location
над когда активность инстанциируется? Или я неправильно понимаю идею Broadcast Receiver
?
Как начать вторую операцию? Можем ли мы увидеть код? Вместо того, чтобы отправлять широковещательную рассылку, вы можете отправить широту и долготу, когда вы начнете ее сначала. –
Вы можете поместить данные в намерение, которое начнет второе действие. – wrkwrk