0
我想通過廣播接收機接收座標後更新地圖。 所以我給了我一個短信,接收者拿到了它,並在地圖上放了一個標記。 問題是活動沒有顯示在屏幕上:我必須手動切換才能看到它。短信窗口仍然位於頂部。任何想法 ?從廣播接收機更新後顯示地圖
此外,標記在地圖上不居中......
下面是代碼:
public class MainActivity extends Activity
{
private GoogleMap mMap;
private ArrayList<MyMarker> mMyMarkersArray = new ArrayList<MyMarker>();
private HashMap<Marker, MyMarker> mMarkersHashMap;
private BroadcastReceiver updateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent)
{
Log.e("DEBUG", "private broadcast");
Double longitude = intent.getDoubleExtra("long",0);
Double latitude = intent.getDoubleExtra("lat",0);
Log.e("DEBUG", "gotsms : " + longitude + " et " + latitude);
mMarkersHashMap = new HashMap<Marker, MyMarker>();
mMyMarkersArray.add(new MyMarker("I'm here", "icon1", latitude, longitude));
LatLng latLng = new LatLng(latitude, longitude);
updateMap(intent, latLng);
}
};
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter filter = new IntentFilter();
filter.addAction(UPDATE_MAP);
registerReceiver(updateReceiver, filter);
setUpMap();
}
protected void updateMap(Intent intent, LatLng latLng) {
plotMarkers(mMyMarkersArray);
CameraUpdate center=CameraUpdateFactory.newLatLng(latLng);
CameraUpdate zoom=CameraUpdateFactory.zoomTo(12);
mMap.moveCamera(center);
mMap.animateCamera(zoom);
}
我補充說,但沒有改變。發送窗口的短信仍然在頂部:-( –
你應該probaby創建一個新的廣播接收器類,這不是一個活動,並從那裏開始的活動,也不要忘記將它添加到清單。 –
編輯答案。 –