Android 小陷阱

1.Android Studio gradle 插件 本地下载设置

下载gradle压缩包,解压到*用户名.gradle\wrapper\dists*目录下。
gradle下载地址

2.问题:有个手机子activity返回时,父activity就onDestroy,不知为何?

在设置了android:parentActivityName后,点击子Activity返回键,父Activity总会调用OnDestroy()的解决方案

发现不是上面链接的原因,而是因为测试人员打开了开发者选项里的不保留活动的选项

Android 小陷阱_第1张图片
Screenshot_2016-03-29-19-13-38.png

中间插曲,想采用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);
}
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
    outState.putInt(SAVE_MODEL, 222);
    super.onSaveInstanceState(outState, outPersistentState);
}

问题:saveModel的值一直为0.后来才发现应该用下面这种方式

@Override
public 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 小陷阱)