2015-08-02 6 views
-1

Я разработал приложение для музыкального плеера. Я использую следующий код для изменения макета при изменении ориентации, но приложение перезагружается, а приложение с макетом меняется неправильно и не запускается непрерывно.перезагрузка приложения для Android при изменении макета при изменении ориентации

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    // Checks the orientation of the screen 
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     setContentView(R.layout.main_p) 
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
     setContentView(R.layout.main_L) 
    } 
} 

ответ

0

Если вернуться к активности жизненного цикла, при вращении, активность разрушается, а затем воссоздан после того как устройство вращается. Выпускается MediaPlayer, который останавливает воспроизведение. Это приводит к разрыву MediaPlayer. Если вы размещаете MediaPlayer во фрагменте, вы можете использовать функцию, чтобы сохранить экземпляр MediaPlayer в ходе изменения конфигурации.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(saveInstanceState); 
    setRetainInstance(true); 
} 

Кроме того, вам не нужно использовать onConfigurationChanged для изменения макета при вращении. Вы можете поместить другой макет с тем же именем в папке макета-земли. Таким образом, система автоматически переключится на использование макета в папке макета-земли, если ориентация является ландшафтным режимом и макетом в портретном режиме.

Пожалуйста предпочитают developer.android.com для получения дополнительной информации: http://developer.android.com/training/basics/supporting-devices/screens.html

Смежные вопросы