我想要有一個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