AndroidBasis

Android笔记

利用RoundedBitmapDrawableFactory快速实现一个RoundImageView

利用Proguard移除代码中无用code,例如log。

对于Api >=11 并且 < 21,在FrameWork层有一个阻止已经设置Factory2的LayoutInflater的clone对象的Factory2的没有正确合并的bug。

那么这个bug是怎么产生的?又是怎么解决的?

Android中用style的方式实现背景透明的对话框。

Realm 让你能够高效地编写 app 的模型层代码,保证你的数据被安全、快速地存储。它具有 跨平台简单易用可视化 的特点。

所以,赶快开始吧!

我们都知道,在Android里面,只有主线程(MainThread)才可以更新ui,比如设置TextView的文本内容,ImageView的图片等等。

只要我们在非主线程去操作ui界面,就是抛出"Only the original thread that created a view hierarchy can touch its views."的异常。那么这个异常时怎么抛出来的呢?

项目中集成的有极光推送,debug模式下没有问题,当要导出成apk的时候碰到两种类型的错误:

  • Warning: android.support.v4.app.AppOpsManagerCompat23: can't find referenced method 'java.lang.Object getSystemService(java.lang.Class)' in class android.content.Context

  • java.lang.ClassCastException: java.lang.Object cannot be cast to java.lang.String

Service或者BroadCastReceiver中启动Activity的话需要加上一个Intent.FLAG_ACTIVITY_NEW_TASK标记,一般情况下都是好用的,但是有一个需求是在开机广播中启动设置中的设备管理员激活界面,但是发现无法弹出该页面。

有的时候我们会使用RadioGroup + RadioButton + Fragment来切换主界面的Fragment,但是我们需要在进入的时候默认选择一个,这个时候就会手动调用RadioGroup的 public void check(int id)方法,但是这个时候我们就会发现public void onCheckedChanged(RadioGroup group, int checkedId);方法会调用两次.当然这肯定不是我们想要的.