Android(安卓)小陷阱
16lz
2021-01-26
1.Android Studio gradle 插件 本地下载设置
下载gradle压缩包,解压到*用户名.gradle\wrapper\dists*目录下。
gradle下载地址
2.问题:有个手机子activity返回时,父activity就onDestroy,不知为何?
在设置了android:parentActivityName后,点击子Activity返回键,父Activity总会调用OnDestroy()的解决方案
发现不是上面链接的原因,而是因为测试人员打开了开发者选项里的不保留活动的选项
中间插曲,想采用savedInstanceState的方式解决
private static final String SAVE_MODEL = "save_model";@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null) { int savedModel = savedInstanceState.getInt(SAVE_MODEL); } setContentView(R.layout.activity_main);}@Overridepublic void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) { outState.putInt(SAVE_MODEL, 222); super.onSaveInstanceState(outState, outPersistentState);}
问题:saveModel的值一直为0.后来才发现应该用下面这种方式
@Overridepublic void onSaveInstanceState(Bundle outState) { outState.putInt(SAVE_MODEL, 222); super.onSaveInstanceState(outState);}
3.今天在使用Proguard keep一个 静态内部类的时候,混淆完之后一直找不到那个静态内部类
最后在stackoverflow上找到了答案
-keepattributes Exceptions,InnerClasses,... -keep class [packagename].A{*;} -keep class [packagename].A$* {*;}
4.为什么混淆的时候要保留所有Model?
因为自己的程序里采用了Gson解析,字段变了,就找不到了。
5.Fragment的setUserVisibleHint方法实现懒加载
Fragment的setUserVisibleHint方法实现懒加载
Android之取消ViewPage+Fragment的预加载
6.Android viewPage notifyDataSetChanged无刷新
7.URLEncoder
URLEncoder.encode("hello world", "UTF-8"),会变成hello+world
但是正确的应该是hello%20world
解决办法:URLEncoder.encode("hello world", "UTF-8").replace("+", "%20")
8.RecyclerView 23.2.0 新特性
item的android:layout_height="match_parent"就会导致真的全屏
RecyclerView 23.2.0 新特性
更多相关文章
- android中gridview的上拉加载更多
- android广告自动滚动并用picasso实现图片加载
- Android(安卓)异步加载图片-AsyncTask
- 学习Android(安卓)Studio开发工具之Activity3(框架3)
- Android(安卓)打正式包报错:Execution failed for task ':app:tra
- android加载大量图片内存溢出bitmap size exceeds VM budget的解
- Android加载html代码和文件
- Android(13)——RecyclerView列表流行控件,Glide图片流行框架
- 关于android 图片加载优化