积跬步

Just do IT Now.


  • Home

  • Tags

  • Categories

  • Archives

  • Search

Jetpack-MVVM架构

Posted on 2019-12-24 | In Android

MMVM架构

“观察者模式”

数据模型驱动界面更新

Read more »

Jetpack-LiveData

Posted on 2019-12-24 | In Android

数据监听,会及时通知订阅者

Read more »

Jetpack-Navigation

Posted on 2019-12-24 | In Android

Navigation

“导航” 页面切换(处理导航图所需的一切,包括页面的跳转、参数的传递、动画效果的设置,以及Appbar的设置等)

NavHost是个容器,也是个控制器

Read more »

Jetpack-Paging

Posted on 2019-12-24 | In Android
Paging为常见的3种分页机制提供了统一的解决方案,使工程师能够将更多精力专注在业务代码上。
Read more »

Jetpack-Room

Posted on 2019-12-24 | In Android

Room

SQLite数据的抽象(Google官方的ORM数据库,原生支持LiveData。当Room数据库中的数据发生变化时,LiveData使数据的订阅者能及时得到通知,而无须从数据库重新获取数据。)

负责数据的存储

Read more »

Jetpack-ViewModel

Posted on 2019-12-24 | In Android

ViewModel是View与Model之间的一个桥梁,项目中用在了网络请求数据之前,它会回调到View或者Presenter层

Read more »

Jetpack-生命周期感知型组件

Posted on 2019-12-24 | In Android

生命周期感知型组件

解耦很大程度上表现为系统组件的生命周期与普通组件之间的解耦。普通组件在使用过程中通常需要依赖于系统组件的生命周期。因为普通组件无法主动获知系统组件的生命周期事件。

生命周期感知型组件可执行响应另一个组件(如Activity和Fragment)的生命周期状态的变化。

Read more »

Jetpack

Posted on 2019-12-24 | In Android

初识Jetpack

摘要:初识Jetpack

  • Jetpack架构
  • 如何使用
  • jetpack的介绍
Read more »

Jetpack-WorkManager

Posted on 2019-12-24 | In Android

WorkManager

Android为后台执行任务提供了多种解决方案:JobScheduler、Loader、Service等。但它们可能会消耗大量的电量。Android在耗电问题上又做了各种尝试,从Doze到App Standby。

WorkManager为应用程序中那些不需要及时完成的任务(如后台执行任务)提供统一的解决方案,以便在设备电量和用户体验之间达到一个较好的平衡。

Read more »

安卓-存储相关

Posted on 2019-12-23 | In Android

数据存储

存储方式 说明
SharedPreferences 在键值对中存储私有原始数据
内部存储 在设备内存中存储私有数据
外部存储 在共享的外部存储中存储公共数据
SQLite 数据库 在私有数据库中存储结构化数据

SharedPreferences

Read more »

工具-Intent相关

Posted on 2019-12-23 | In Android代码片段

跳转到指定应用的首页

1
2
3
4
5
6
7
/**
* 跳转到指定应用的首页
*/
private void showActivity(@NonNull String packageName){
Intent intent = getPackageManager().getLaunchIntentForPackage(packageName);
startActivity(intent);
}

跳转到指定应用的指定页面

Read more »

工具-多个控件添加监听

Posted on 2019-12-19 | In Android代码片段

多个控件添加监听

1
2
3
4
5
6
7
8
9
10
11
12
//多个控件添加监听
private void addOnClickListeners(@IdRes int... ids) {
if (ids != null) {
View view;
for (int id : ids) {
view = findViewById(id);
if (view != null) {
view.setOnClickListener(this);
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//调用: 
addOnClickListeners(R.id.btn_open_log
, R.id.btn_disable_log
, R.id.btn_pre_load_before_page
, R.id.btn_pre_load_inside_page
, R.id.btn_pre_load_before_button_click
, R.id.btn_pre_load_group_before_page
);

private SparseArray viewSparseArray = new SparseArray<>();
private void addOnClickListeners(@IdRes int... ids) {
if (viewSparseArray == null) {
viewSparseArray = new SparseArray<>();
}
if (ids != null) {
for (int id : ids) {
if (viewSparseArray.get(id) == null) {
viewSparseArray.put(id, findViewById(id));
}
if (viewSparseArray.get(id) != null) {
viewSparseArray.get(id).setOnClickListener(this);
}
}
}
}
Read more »
<1…212223>

276 posts
23 categories
47 tags
E-Mail CSDN
0%
© 2018 — 2025 阿炳
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4