Я постараюсь быть точным как можно больше. Я написал приложение, сам полный код не имеет значенияРазличные поведения одного и того же приложения на одних и тех же устройствах
public void onWindowFocusChanged(boolean hasFocus){
super.onWindowFocusChanged(hasFocus);
if(hasFocus){
globalWidth = mainLayout.getWidth();
refillData();
}
}
он прекрасно работает на моем устройстве (SGS2 DarkyROM hd2.1 Android версии 4.0.3 также проверили его на системах, основанных на 2.3 версии для sgs2), другой sgs2 с PilotX2.1, также он работает на ASUS Transformer (android v4.2.1) и многих других устройствах с разными размерами экрана. Я должен сказать, что он имеет различный вид в зависимости от того, какое устройство он запускает (он строит основной макет динамически, поэтому его действительно заметно, если приложение работает правильно или нет).
Но на некоторых устройствах это странное поведение. Например, в HTC (htc sense 2.1), работающем под управлением Android версии 2.3.5, его каким-то образом в строке getWidth() возвращает половину или фактическую ширину экрана. Или версия sgs2 4.2.1 android также возвращает странный результат.
Я попытался найти в google и переполнение стека, чтобы узнать, есть ли какие-то конкретные системные различия, которые следует учитывать, которые оказывают такое большое влияние на приложение, но ничего. Я не использую какое-либо конкретное оборудование устройства, которое может быть реализовано по-разному разработчиком системы.
В чем проблема, о которой я не думал? Может быть, что разные ядра создают «проблемное» поведение для моего приложения? Я думал, что это могут быть разные ПЗУ, но я проверил хотя бы 6-8 разных ПЗУ и не имел проблем.
Если кто-нибудь знаком с этой темой или встретил нечто подобное, я был бы рад даже за ссылку на веб-страницу. Я действительно разочарован.
Thnx, я проверю его завтра. – user1927829
Это не сработало. это даже показало странное поведение. Помещая этот код 'mainLayout.measure ( MeasureSpec.makeMeasureSpec (0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec (0, MeasureSpec.UNSPECIFIED)); дает очень странные результаты. – user1927829