笔者说:笔者写的这系列读书笔记,目的就是为了方便伸手党,不用看书,可以快速知道书中的一些思想,所以,文章中一般不会写太多代码,都是笔者的一些理解,或书中作者代码的描述。没错,我也是个极简主义者,哈哈。(别看东西少,我真没糊弄你们,哈哈)
最后:笔者是个萌新啊,大佬看到错误多多指正,加油
什么是Context:
翻译过来就是环境的意思。
一个Activity是一个Context对象,一个Service也是一个Context对象。
我的理解:Context我们可以看到它中间的text,其实也是一个内容。就像一个土地公,既代表这块土地,也是这块土地的管理者。
我觉得安卓,比较重要,或者说最直观的理解,就是“分发”这两个字。
1.1快速获得Context的技巧Android提供了一个Application的类,每当应用程序启动的时候,系统就会自动的将这个类进行初始化,而我们可以定制一个自己的Application类,以便于管理程序一些全局的状态信息,比如全局Context.
public class MyApplication extends Application{ private static Context context; @Override public void onCreate(){ context = getApplicationContext(); //在自定义的application中调用LitePal LitePalApplication.initialize(context); } public static Context getContext(){ return context; } }
接下来我们需要告知系统,当程序启动的时候应该初始化MyApplication类,而不是默认的Application类。
这里直接在application标签下指定即可。(记得写完整包名)。
第二节 Intent传值技巧 Intent传递对象的两种实现方式Serializable & Parcelable (两种序列化方式,在实体类中实现接口)
Serializable 方式emm书上传递逻辑太简单,就是new一个实体类然后set值,我这里就跳过了。
我写下接收方法。
//Person就是实体类 Person person = (Person) getIntent().getSerializableExtra("KEY");Parcelable方式
public class Person implements Parcelable{ private String name; private int age; ... @Override public int describeContents(){ return 0; } @Override public void writeToParcel(Parcel dest,int flags){ dest.writeString(name); dest.writeInt(age); } public static final Parcelable.CreatorCREATOR = new Parcelable.Creator (){ @Override public Person createFromParcel(Parcel source){ Person person = new Person(); person.name = source.readString(); person.age = source.readInt(); return person; } @Override public Person[] newArray(int size){ return new Person[size]; } } }
接收代码
//Person就是实体类 Person person = (Person) getIntent().getParcelableExtra("KEY");
对比Serializable ,Parcelable的逻辑复杂,但效率更高。
第三节 定制自己的log日志书上写得没啥意思。。。
一看就会
有需要,可以百度,貌似更快,固定代码。
第四节 调试Android程序重要的事情说三遍:
Debug 打断点!Debug 打断点!Debug 打断点!
然后按F8代码就会向下执行一行,可以观察数据变化。
第五节 创建定时任务 Timer类别用这个了,太耗费性能了,扛不住啊。
Alarm类代码的话,百度一大把,我这读书笔记就不敲了。。。
重点:Android 4.4开始,Alarm任务触发时间不准确(有延迟)
解决:使用AlarmManager的setExact()代替set()。
Doze模式知道他是一种模式,为了,延长电池使用寿命。
进入这种模式,系统会对CPU、网络、Alarm等活动进行限制,从而达到目的。
第六节Lambda表达式Lambda表达式本质:匿名方法
要使用,得再build.gradle里面加配置
关键词:箭头函数、极简主义
本问没有描述书中的多窗口模式,因为太晚了,我要猝死了,明天再说吧。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)