Android基础

2018-07-25  本文已影响7人  细雨蒙情

一、Activity

1、Activity生命周期

Activity生命周期

2、启动模式及其应用场景

启动模式4种:standard,singleTop,singelTask,singleInstance。

二、Fragment

1、Fragment生命周期

Fragment生命周期

与Activity不同的地方是:
(1)onAttach():回调将在Fragment与其Activity关联之后调用,可以得到Activity的引。
(2)onCreate():创建实例
(3)onCreateView():创建Fragment视图
(4)onActivityCreate():Activity中onCreate回调
与Activity的通信、与Fragment的通信

SharePreference相关

1、SharePreference为什么进程间通信不是安全的?
SharePreference中新建时可以指定加载模式是MODE_MULTI_PROCESS,用来支持多进程使用,但是无法做到多进程同步更新。SharePreference首次加载时会把所有内容从磁盘加载进内存,以后读取直接从内存中读取,修改后提交事务则会把内容先写进内存,然后写进磁盘。MODE_MULTI_PROCESS的作用只是说当调用getSharedPreferences()时即使内存中存在缓存也会从磁盘中获取,之后还是从缓存中获取数据。即使每次获取内容都调用getSharedPreferences()直接从磁盘读取数据,也不是同步的,因为Android原生的文件访问并不支持多进程互斥,也就是可能一个进程正在写数据,一个进程读数据,那么得到的数据可能是脏数据,这个问题也无法同个加锁来解决,因为进程间无法共享内存,实际上是两把锁。
2、commit和apply的区别
commit和apply都是提交事务,先把内容更新到内存中,在写入到磁盘中。不同的是commit是在当前线程中执行,而apply在当前线程写入内存缓存,然后在线程中把内容写进磁盘中。所以不要在主线程中执行commit操作。
https://zhuanlan.zhihu.com/p/22913991
https://www.jianshu.com/p/4984f66f9a4b

线程执行相关

1、多个线程如何顺序执行
https://blog.csdn.net/quliangmao/article/details/78666417
2、线程打印AB,多个线程执行如何确保打印出AA...BB
https://www.jianshu.com/writer#/notebooks/25326932/notes/28629104/preview
3、多线程交替打印ABC
https://blog.csdn.net/xiaokang123456kao/article/details/77331878

上一篇 下一篇

猜你喜欢

热点阅读