Android软键盘

Samsung手机ClipboardUIManager引起的内存泄漏

项目中软件盘弹出不正常,弹出的方式也改变了,程序日志如下

E/ClipboardServiceEx﹕ clipEx is android.sec.clipboard.ClipboardExManager@1f70b420
E/ClipboardServiceEx﹕ clipEx has text data : false

这是三星系统的一个BUG,由于ClipboardUIManager是这样获取对象的

public static ClipboardUIManager getInstance(Context context) {  
  if (sInstance == null)  
    sInstance = new ClipboardUIManager(context);  
  return sInstance;  
}  

获取ClipboardUIManager对象传的Context实际上就是当前的Activity,导致该activity一直被引用没法释放了
解决办法在Application中先通过反射调用getInstance方法传入当前Application,具体代码如下

try {  
            Class cls = Class.forName("android.sec.clipboard.ClipboardUIManager");  
            Method m = cls.getDeclaredMethod("getInstance", Context.class);  
            m.setAccessible(true);  
            m.invoke(null, this);  
        } catch (ClassNotFoundException e) {  
            e.printStackTrace();  
        } catch (NoSuchMethodException e) {  
            e.printStackTrace();  
        } catch (IllegalAccessException e) {  
            e.printStackTrace();  
        } catch (InvocationTargetException e) {  
            e.printStackTrace();  
        }  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,916评论 25 709
  • 导读:在水草缸里最吸引人的地方是啥?必须是那青青红红的水草!一片一片,就跟那田里的麦浪一般,随着水流波动。 水草缸...
    养草的大灰狼阅读 1,262评论 0 1
  • 最近不知怎么的突然感觉到亚洲的没落,可能会说我这是没事杞人忧天,但是在这几天的发生的事情使我发现中国在下沉。...
    李逵煎蛋阅读 110评论 0 1
  • 在我从元始天尊那回来的时候,我们无名村的妖怪算是平静了一些。但也太平静了,而且妖将都莫名其妙的消失了。而且天上的妖...
    皮卡丘萌萌哒阅读 206评论 0 0