Android开发

  • A+
所属分类:笔记

探究活动

  1. intent分为显式和隐式,显式 intent(firstActivity.this,SecondActivity.this)。隐式Intent("com.activitytest.ACTION_START"); 活动之间跳转。

Toast.makeText(); 显示提示框。

  1. 活动的生命周期
  • onCreate: 初始化函数
  • onStart:
  • onResume
  • onPause
  • onStop
  • onDestroy
  • onRestar
  1. singleTask
  • 当一个实例存在时,直接使用该实例,而不是新增一个同样的实例,若没发现则新建一个活动实例。

UI开发

  1. TextView:文本
  2. Button:按钮
  3. EditText:输入和编辑框
  4. ImageView:图片控件
  5. ProgressBar:进度条
  6. AlertDialog:对话框

RecyclerView

使用之前要先在项目的build.grade中添加相应的依赖库。

  1. (网格布局)GirdLayoutManager
  2. (瀑布流布局)StaggeredGridLayoutManager
StaggeredGridLayoutManager layoutManager = new
                  StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);
  • 第一个参数3表示指定布局布局的列数。
  • 第二个参数用于指定布局的排列方向为纵向排列。

碎片的状态

  1. 运行状态
  2. 暂停状态

当一个活动进入暂停状态时,与它相关联的可见碎片就会进入到暂停状态。

  1. 停止状态
  2. 销毁状态

标准广播

广播发出后,所以广播接收器几乎会在同一时刻接收到这条广播消息。

有序广播

广播发出后,同一时刻只会有一个广播接收器能够收到这条广播消息,当该广播接收器中的逻辑执行完毕后广播才会继续传递。


持久化存储技术

  1. 文件存储
  • 直接通过java流的方式将数据原封不动的保存到文件中,比较适合简单的文本数据或者二进制数据。
  • FileOutputStream out = openFileOutput("data", Context.MODE_PRIVATE);
  • 第一个参数"data"为文件名,不能包含路径。
  • 第二个参数为文件的操作模式
    1. MODE_PRIVATE
    当文件名重名时,写入内容覆盖原文件中的内容。
    1. MODE_APPEND
    若文件存在就往文件里追加内容,不存在则创建新文件。
  1. SharedPreference存储
  • 使用键值对的方式存储数据
  • 得到SharedPreferences对象的3种方法
    1. Context类中的getSharedPreferences()方法
    • 该方法接收两个参数,第一个参数用于指定SharedPreferences文件的名称,第二个参数用于指定操作模式,目前只有MODE_PRIVATE这一种模式。
    1. Activity类中的getPreferences()方法
    • 与上面方法相似,不过它只接受一个操作模式参数。
    1. 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", ""); //第二个参数为默认值,当传入的键找不到对应的值时返回该值
  1. LitePal操作数据库
  1. 使用LitePal查询数据
  • List<Book> books = DataSupport.findAll(Book.class); 查询Book表中的所有数据,返回一个Book类型得list集合。
  • List<Book> books = DataSupport.limit(3).find(Book.class); 查询表中得前3行数据。

创建内容提供器

  1. Intent倾向于去立即执行某个动作,而PendingIntent更加倾向于在某个合适的时机去执行某个动作。可以把PendingIntent理解为延迟执行的Intent

OkHttp

  1. 创建OkHttpClient实例
 OkHttpClient client = new OkHttpClient();

GSON

可以将一段JSON格式的字符串自动映射成一个对象。

例如一段JSON格式的数据:

{&quot;name&quot;:&quot;Tom&quot;,&quot;age&quot;:20}

定义一个Person类,调用如下代码就能将JSON数据自动解析成Person对象

Gson gson = new Gson();
Person person = gson.fromJson(jsonData,Person.class);

Android多线程编程

  1. 使用AsyncTask
  • class DownloadTask extends AsyncTask<void,Integer,Boolean>{ ... }
  • void表示在执行AsyncTask的时候不需要传入参数给后台任务。
  • Integer表示使用整形数据来作为进度显示单位。
  • Boolean表示使用布尔类型数据来反馈执行结果。

希望是附丽于存在的,有存在,便有希望,有希望,便是光明。

 —— 鲁迅

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: