应用常遇到的一些小问题记录:
1、应用布局中的字体受到系统字体设置的影响
在应用aplication初始化的时候进行相应的处理
Configuration config = new Configuration(); config.setToDefaults(); res.updateConfiguration(config,res.getDisplayMetrics() ); SDKInitializer.initialize(getApplicationContext());
2、webview中的视频播放会在退出当前activity之后任然进行播放。
因为该方法在api11以上才是暴露出来的,11以及一下版本是私有的所以需要利用反射调用
api11以上可以分别在Activity的onResume();
和OnPause()中调用webview对应的OnResume()和OnPause()方法
try { webview.getClass().getMethod("onResume").invoke(articleWebView,null); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } try { articleWebView.getClass().getMethod("onPause").invoke(articleWebView,null); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); }
3、用到Disk缓存即SD卡缓存的图片缓存框架如果sd卡未挂载或者sd卡异常导致无法写入一般会导致程序无法打开,在打开的时候闪退。
4、Fragment中遇到的
IllegalStateException("Fragment " + this + " not attached to Activity")错误
onAttach()中getActivity()获取activity的引用。
对应应该在onDetach()中释放引用。
或者全程实时调用getActivity()获取acitivity实例。
5、涉及到Activity的Ui与其内部Fragment之间进行数据逻辑更新操作时需要对接口中暴露的参数判空。
6、关于使用上下文的例子context,getBaseContext,getAplicationContext
尽量使用getAplicationContext;(容易)
7、Android-Universal-Image-Loader
如果OutOfMemoryError错误很常见,可以通过下面的方式设置
(1).减少configuration中线程池的线程数目(.threadPoolSize(...)) 推荐为1 - 5
(2).display options通过.bitmapConfig(Bitmap.Config.RGB_565)设置. Bitmaps in RGB_565 consume 2 times less memory than in ARGB_8888.
(3).使用configuration的memoryCache(new WeakMemoryCache())方法 或者不调用.cacheInMemory()方法
(4).display options通过.imageScaleType(ImageScaleType.IN_SAMPLE_INT) 或者 .imageScaleType(ImageScaleType.EXACTLY)方法
(4).避免使用RoundedBitmapDisplayer,它创建了一个新的ARGB_8888 Bitmap对象
8、onAttachedToWindow()在整个Activity生命周期的位置及使用
onAttachedToWindow在Acitivity生命周期中处在onResume之后
根据ActivityThread中对Activity的实现中可以看到附着在Window上的DecorView
在handleResumeActivity的时候设置LayoutParams的,也就是生命周期中的OnResume
所以在onAttachedToWindow中可以对窗口进行宽高设置
http://blog.csdn.net/guxiao1201/article/details/41517871
后续补充。。。。