Инструкции Real Java по опубликовали это решение, которое также совместимо с версиями до Java 1.6.
BigDecimal bd = new BigDecimal(Double.toString(d));
bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP);
return bd.doubleValue();
Подобный этому вопросу, где изменение ориентации заставляет устройство реконфигурировать:
перезапуск Действия на вращении Android
Мой предпочтительный ответ:
https://stackoverflow.com/a/11811999/3739540
Вместо того, чтобы пытаться остановить onCreate () от того, чтобы быть запущенным в целом, возможно, попытайтесь проверить Пакет savedInstanceState передаваемый в событие, чтобы видеть, является ли это пустым или нет.
, Например, если у меня есть некоторая логика, которая должна быть выполнена, когда Действие действительно создается, не на каждом изменении ориентации, я только выполняю ту логику в onCreate (), только если savedInstanceState является пустым.
Иначе, я все еще хочу, чтобы расположение перерисовало правильно для ориентации.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game_list);
if(savedInstanceState == null){
setupCloudMessaging();
}
}