SKMaps, проблема Android в альбомной ориентации
Я использую SKMaps (Skobbler) для разработки приложения для Android в Eclipse.
У меня есть приложение, которое отображает карту, имеет 2 кнопки, может найти маршруты к точке на экране, на которой я нажимаю, и инициировать навигацию, которую обеспечивает SDK.
Моя проблема, когда я меняю ориентацию устройства, приложение просто закрывается. Это не дает мне никакого сообщения об ошибке, поэтому я не могу определить источник проблемы.
Прилагаемое демонстрационное приложение легко управляет ориентацией устройства. Я заметил, что когда я переворачиваю его в LogCat, появляется сообщение:
05-09 12:22:37.560: D/SKMaps(7866): MapRenderer----onSurfaceChanged width = 720 height= 1134
Мое приложение просто закрывается с последним сообщением:
05-09 12:22:37.745: D/SKMaps(7866): SKCurrentPositionProvider----stopped receiving position updates
Я не могу найти где в демонстрационном приложении код для обработки ориентации. У кого-нибудь есть идеи, где я могу пойти не так?
пс. Я объявил в своем Манифесте мою деятельность как:
<activity
android:name="com.aatana.mymapproject.MyActivity"
android:configChanges="orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
2 ответа
В демонстрационном проекте MapActivity переопределил свой onDestroy:
@Override
protected void onDestroy() {
super.onDestroy();
currentPositionProvider.stopLocationUpdates();
SKMaps.getInstance().destroySKMaps();
android.os.Process.killProcess(android.os.Process.myPid());
}
Вам нужно удалить строку, которая убивает процесс:
android.os.Process.killProcess(android.os.Process.myPid());
На какую версию Android вы ориентируетесь? Начиная с Android 3.2 (уровень API 13), "размер экрана" также изменяется, когда устройство переключается между книжной и альбомной ориентацией.
<activity
android:name=".activity.MapActivity"
android:configChanges="orientation|screenSize">
</activity>