- A+
所属分类:笔记
探究活动
- intent分为显式和隐式,显式 intent(firstActivity.this,SecondActivity.this)。隐式Intent("com.activitytest.ACTION_START"); 活动之间跳转。
Toast.makeText(); 显示提示框。
- 活动的生命周期
- onCreate: 初始化函数
- onStart:
- onResume
- onPause
- onStop
- onDestroy
- onRestar
- singleTask
- 当一个实例存在时,直接使用该实例,而不是新增一个同样的实例,若没发现则新建一个活动实例。
UI开发
- TextView:文本
- Button:按钮
- EditText:输入和编辑框
- ImageView:图片控件
- ProgressBar:进度条
- AlertDialog:对话框
RecyclerView
使用之前要先在项目的build.grade
中添加相应的依赖库。
- (网格布局)GirdLayoutManager
- (瀑布流布局)StaggeredGridLayoutManager
StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);
- 第一个参数3表示指定布局布局的列数。
- 第二个参数用于指定布局的排列方向为纵向排列。
碎片的状态
- 运行状态
- 暂停状态
当一个活动进入暂停状态时,与它相关联的可见碎片就会进入到暂停状态。
- 停止状态
- 销毁状态
标准广播
广播发出后,所以广播接收器几乎会在同一时刻接收到这条广播消息。
有序广播
广播发出后,同一时刻只会有一个广播接收器能够收到这条广播消息,当该广播接收器中的逻辑执行完毕后广播才会继续传递。
持久化存储技术
- 文件存储
- 直接通过
java
流的方式将数据原封不动的保存到文件中,比较适合简单的文本数据或者二进制数据。 FileOutputStream out = openFileOutput("data", Context.MODE_PRIVATE);
- 第一个参数"data"为文件名,不能包含路径。
- 第二个参数为文件的操作模式
MODE_PRIVATE
MODE_APPEND
SharedPreference
存储
- 使用键值对的方式存储数据
- 得到
SharedPreferences
对象的3种方法- Context类中的
getSharedPreferences()
方法
- 该方法接收两个参数,第一个参数用于指定
SharedPreferences
文件的名称,第二个参数用于指定操作模式,目前只有MODE_PRIVATE这一种模式。
- Activity类中的
getPreferences()
方法
- 与上面方法相似,不过它只接受一个操作模式参数。
PreferenceManager
类中的getDefaultSharedPreferences()
方法
- 存储数据主要分为3步实现
SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit(); editor.putString("name", "Tom"); editor.apply();
- 读取数据:
SharedPreferences pref = getSharedPreferences("data", MODE_PRIVATE); String name = pref.getString("name", ""); //第二个参数为默认值,当传入的键找不到对应的值时返回该值
- Context类中的
LitePal
操作数据库
- 使用
LitePal
查询数据
List<Book> books = DataSupport.findAll(Book.class);
查询Book表中的所有数据,返回一个Book类型得list集合。List<Book> books = DataSupport.limit(3).find(Book.class);
查询表中得前3行数据。
创建内容提供器
- Intent
倾向于去立即执行某个动作,而
PendingIntent更加倾向于在某个合适的时机去执行某个动作。可以把PendingIntent
理解为延迟执行的Intent
。
OkHttp
- 创建
OkHttpClient
实例
OkHttpClient client = new OkHttpClient();
GSON
可以将一段JSON格式的字符串自动映射成一个对象。
例如一段JSON格式的数据:
{"name":"Tom","age":20}
定义一个Person类,调用如下代码就能将JSON数据自动解析成Person对象
Gson gson = new Gson(); Person person = gson.fromJson(jsonData,Person.class);
Android多线程编程
- 使用AsyncTask
class DownloadTask extends AsyncTask<void,Integer,Boolean>{ ... }
- void表示在执行AsyncTask的时候不需要传入参数给后台任务。
- Integer表示使用整形数据来作为进度显示单位。
- Boolean表示使用布尔类型数据来反馈执行结果。