安卓学习笔记
组件
Activity
- 生命周期
- 启动方式
- 作为APP的MAIN_ACTIVITY启动
startActivity()
-
startActivityForResult()
- 有返回值
- 主要工作
- UI绘制,绑定事件
- UI只能在主线程绘制。多线程情况下通过Handler或者广播接收来自其他线程的绘制申请。
- 权限申请与检查(OnResum)
- 动态权限申请
- UI绘制,绑定事件
参考资料:
Service
长生命(不容易被销毁)、无关UI、运行在主线程(不能执行耗时操作)的组件。
生命周期
- service(被开启,还允许绑定)的生命周期 service(被开启,还允许绑定)的生命周期
-
onCreate()
- 首次创建服务调用
- 只会调用一次
-
onStartCommand()
- 当组件调用
startService()
被调用时,该方法会随之调用 - 可以多次被调用,因为Service可以被多次start
- 返回值为Int类型。以此确定在Service被kill之后是否自动重建Service或如何重建Service。
- 当组件调用
-
onBind()
- 当组件调用
bindService()
被调用时,该方法会随之调用 - 可以多次被调用,因为Service可以被多次bind
- 返回值为IBinder接口实现类。
- 当组件调用
-
onUnbind()
- 当组件调用
unbindService()
时,该方法会随之调用
- 当组件调用
-
onRebind()
- 当旧的组件与服务解绑后,另一个新的组件与服务绑定,
onUnbind()
返回 true 时,系统将调用此方法。
- 当旧的组件与服务解绑后,另一个新的组件与服务绑定,
onDestroy()
启动方式
-
startService()
- 由此启动的Service会在后台无限期运行,需组件调用
stopSelf()
方法或者其他组件调用stopService()
方法 - 无返回值
- 由此启动的Service会在后台无限期运行,需组件调用
-
bindService()
- 提供了IBinder接口,允许绑定组件与被绑定服务交互,需组件调用
unbindService()
解绑 - 多个组件可以绑定在一个服务上
- 由此启动的Service会在所有绑定解除后自动销毁
- 无返回值
- 提供了IBinder接口,允许绑定组件与被绑定服务交互,需组件调用
- 组件可以绑定一个由
startService()
启动的Service,此时手动销毁Service需要等待绑定解绑
清单文件声明
Service类别
普通(start)
可交互服务的后台服务(bind)
- 自有应用内
- 通过扩展IBinder并从
onBind()
返回一个实例
- 通过扩展IBinder并从
- 跨应用(多进程)
- Messenger串行处理
- 在
onBind()
中返回new Messenger(Handler) 实例
- 在
- Messenger串行处理
- AIDL多线程处理
长久运行的前台服务
- 后台服务优先级相对较低,容易被回收资源。前台服务可以一直保持运行状态而不被系统回收
- 必须在状态栏提供通知。在服务停止前通知不可消除。
- 启动方式
startForeground(int id, Notification notification)
stopForeground(boolean removeNotification)
- IntentService
- 可以执行耗时操作
- 继承 IntentService 并覆写 onHandlerIntent 函数
参考资料:
Broadcast
ContentProvider
Fragment
Notification
参考资料:
API
SQLite
参考资料:
MediaPlayer
参考资料:
UI
ConstraintLayout
参考资料:
LinearLayout
DrawerLayout
- NavigationView
TabLayout
View
参考资料:
- setCompoundDrawablesWithIntrinsicBounds
- getMeasuredHeight () 与 getHeight
- NestedScrollView、RecycleView、ViewPager 等布局方面的常见问题汇总,及解决
RecycleView
参考资料:
- RecyclerView 使用方法总结
- ItemDecoration 从入门到实现吸顶效果
- ItemDecoration 解析 (二) onDraw onDrawOver
- RecyclerView 的高效触摸监听
- 使用 RecyclerView 实现滚动控件
- Android 使用 RecyclerView 实现(仿微信)的联系人 A-Z 字母排序和过滤搜索功能
Scollview
参考资料:
ViewPager
参考资料:
ImageView
- 自定义圆形imageview
BottomNavigation
参考资料:
Toolbar
参考资料:
Button
参考资料:
资源
Drawable
参考资料:
Tint
参考资料:
网友评论