В настоящее время Google работает с бета-версиями на некоторых устройствах Chromebook. У меня есть приложение в Google Play и после его загрузки на Chromebook я столкнулся с этой проблемой: активность приложения перезапускается. Каждый раз при нажатии кнопки «Максимизировать». Конечно, я хочу поддерживать совместимость своего приложения с Chrome OS. Я не уверен, где проблема, на устройстве Android он работает хорошо.Android-приложение для Chrome OS перезапускается каждый раз при нажатии кнопки «Максимизировать»
Эта проблема может быть хорошо воспроизводит с простым приветом мира проектом сделал с Android студией (я использую версию 1.5):
В Android студии нажмите кнопку «Начать новый проект Android-студию», введите имя и нажмите далее. Я установил совместимость для API 8+, а затем выбрал Empty activity. Проект устанавливается с помощью мин Sdk 8 и целевой SDK 23. Для OnCreate я добавил простой Toast сообщение:
Toast.makeText(this, "Recreated", Toast.LENGTH_SHORT).show();
Привели APK можно протестировать на Chrome OS. При каждом нажатии кнопки «Максимизировать» я вижу сообщение «Воссозданное».
Я ничего не сделал для AndroidManifest.xml. Но я проверил флаги:
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="adjustResize"
без успеха.
Вот как выглядит мой код активности:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(this, "Recreated", Toast.LENGTH_SHORT).show();
}
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
Toast.makeText(this, "onConfigurationChanged", Toast.LENGTH_SHORT).show();
} }
Я ожидал, что onConfigurationChanged
события будет срабатывать каждый раз, когда я нажимаю «Maximize» кнопка, но вместо этого было названо onCreate()
.
Пожалуйста, что я должен сделать, чтобы предотвратить перезапуск Activity каждый раз при нажатии кнопки «Максимизировать». И как обрабатывать это событие «изменить размер».
Спасибо, я попробовал его с "screenSize", но он не работает. С «ориентацией | keyboardHidden | screenSize» в манифесте активность не перезапускается на устройстве Android, но на хромовой ОС она воссоздана ... Если ее действительно нужно перезапустить, я должен начать хранить все данные в статических переменных и загружать их обратно ко всем просмотров в «onCreate». Это означает инициализацию всех представлений, структур и т. Д. ... большие накладные расходы. Надеюсь, что есть некоторое обходное решение ... – user1063364
Попробуйте сначала все: «mcc», «mnc», «locale», «touchscreen», «клавиатура», «keyboardHidden», «Навигация», «ScreenLayout», «fontScale», «uiMode», «ориентация», «screenSize», «smallestScreenSize», «плотность» :) –
Hah, идеальная идея:) Правильные настройки: «orientation | keyboardHidden | screenLayout | screenSize | smallestScreenSize». Если я удалю screenLayout или smallestScreenSize, это не сработает. Но «воссозданный» показывается только один раз, и каждый раз, когда я нажимаю «максимизировать», я вижу сообщение «onConfiguration». Я тестировал его сейчас с помощью дуговой сварщика, но проверю его на chromebook как можно скорее. Напиши здесь окончательный результат. Большое спасибо. – user1063364