点滴记录

应用常遇到的一些小问题记录:

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


后续补充。。。。



你可能感兴趣的:(点滴记录)