启动 Activity
启动startActivity(intent) startActivityForResult(intent,requestCode);
启动 Service
startService(intent)
BindService(intent)
发送广播
sendBroadCast(intent)
反射在程序运行时动态发现类中的属性 发 动态的执行相关方法
通用编程 框架编程
反射: 类名.class 类的对象.getClass(); Class.forName(“包名.类名”);
Activity组件对象 呈现view 与用户进行交互
Activity对象的启动模式 四个
Activity的亲族设置
Activity的模块化组件 Fragment
Activity对象在屏幕横竖切换是 会默认自动销毁然后重新创建 可以不让其横竖切换 加入允许横竖切换 可以不重建activity (configChanges)
Activity对象的呈现形式可以是对话框
AdapterView
ListView
Spinner
GridView
AutoCompleteTextView
ViewPager
AdapterViewFlipper
InputControls: Button EditText CheckBox RadioButton DatePicker
Menus:OptionMenu ContextMenu PopuMenu
ActionBar OptionMenu
Dialog:AlertDialog(提示对话框 警告对话框)
DatePickerDialog TimePickerDialog
ProgressDialog
Activity Dialog (修改Activity的主题)
Notification
Toast
数据存储:DataStorage
外部存储(外置sdcard):一般为共享数据
内部存储(内置sdcard):一般为私有数据
直接IO存储 偏好设置 SQLite存储
静态读取
Android数据存储相关对象?
Environment 用于获得系统存储目录
Context 访问系统资源
I/O Object 读写数据
SharedPreferences(存储 Key-Value 类型)
SQLiteDataBase 存储媒体信息 联系人
RecyclerView
可以再APP中创建复杂列表 不用在负责item的显示相关的功能
布局 绘制 数据绑定等都被分拆成不同的类进行管理
采用LayoutManager来处理Item的布局
采用的adapter 要继承RecyclerView.Adapter类 用来将数据和布局item进行绑定
LayoutManager:布局管理器 设置view的位置
RecyclerView提供了三种内置的LayoutManager:
LinearLayoutManager先行布局横向或者纵向滑动列表
GridLayoutManager 表格布局
StaggeredGridLayoutManager流式布局
当继承RecyclerView.LayoutManager来实现一个自定义的LayoutManager
RecycleView默认开启添加和删除的动画
通过RecyclerView.ItemAnimator类定制动画 通过RecyclerView.setItemAnimator()方法来使用
RecyclerView.ViewHolder 承载Item视图的子布局
RecyclerView.LayoutManager 负责Item视图的布局的显示管理
RecyclerView.ItemDecoration 给每一项Item视图添加子View (可以画分割线)
RecyclerView.ItemAnimator 负责处理数据添加或者删除时候的动画效果
可以再布局文件中引入RecyclerView 跟viewPager 一样 很麻烦的那种
自定义适配器创建itemview 继承 RecyclerView.Adapter<>
重写方法 onCreateVIewHolder 减少itemview的构建次数
重写方法 onBindViewHolder 进行数据绑定
重写方法getItemCount 得到数据的数量
StringBuffer 中的 append方法是同步的
StringBuilder 中的 append 方法是不同步的
Vector 是同步的 ArrayList 不是同步的
HashTable 是 同步的 HashMap是不同步的
Collections。synchronizedList()
Collections。synchronizedMap()
ArrayList list=new ArrayList()
List syncList=Collections。synchronizedList(list)
Looper 不断地轮询消息队列中的message Looper。Prepare() 为当前线程创建looper实例 并且与当前线程绑定在一起存入ThreadLocal。
Looper。myLooper() 获取与当前线程绑定在一起的looper实例
Loop()开始轮询消息队列
工作线程在耗时任务执行完后 把消息对象交给handler 由handler交给消息队列 通知looper轮询该消息队列 轮询的过程在主线程中完成
Handler 中的 HandlerMessage
用handler的postDelay方法向消息队列中添加延迟执行的任务
用post 向消息队列中添加任务