2013-06-11 49 views
0

我正在开发一个应用程序的android和当一切都应该完成我已经发现了一个引渡行为。在某些设备中,屏幕开始闪烁,并且没有明显的原因。它可能发生在初始飞溅,只有一个AsyncTask查询web服务或在主屏幕上根本没有asynctask。4.2闪烁的Android屏幕没有明显的原因

这很奇怪,因为只发生在Android 4.2的设备中,也不会发生在2.3或2.2中。我试过在清单中启用标签harware-accelration,但我不知道可能是什么原因

有些帮助吗?

在此先感谢。

+0

是否可以在设备的“监测”部分下的设置>开发人员选项中启用严格模式?这使得屏幕在应用程序在主线程上执行长操作时会闪烁。 – BigBen3216

+0

不,我已检查它并且该选项未被选中。谢谢 – slk

回答

2

最后我管理如何避免这种情况。 Here是诀窍,只是改变我的应用程序的覆盖OnConfigurationChanged。 这是我的旧代码

@Override 
    public void onConfigurationChanged(Configuration newConfig) {  
     super.onConfigurationChanged(newConfig); 
     Locale l = getLocale(); 
     Configuration config = new Configuration(newConfig); // get Modifiable Config from actual config changed 
     config.locale = l; 
     getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); 

    } 

,我已经改变了这个

@Override 
    public void onConfigurationChanged(Configuration newConfig) {  
     super.onConfigurationChanged(newConfig); 
     Locale l = getLocale();   
     Configuration config = new Configuration(newConfig); // get Modifiable Config from actual config changed 
     config.locale = l; 
     getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); 

    } 

我希望有人认为这是有用的。

+1

这两个代码块有什么区别? –

+0

这两个代码块似乎没有区别! –

+0

虽然这两个块是相同的,但你的诀窍:从旧的作品创建新的配置。 –