更改 startActivityForResult()/onActivityResult() 和 requestPermissions()/onRequestPermissionsResult() 弃用...prepareCall() 重命名为 registerForActivityResult() target fragment API 被弃用 Activity Result API 上位 由于官方提供了...因此 Alpha 版本不适合在生产上使用 ❞ ? 来自我的另一篇博客 target fragment API 被弃用 其实 target fragment API 早已被弃用 ?...setTargetFragment 被弃用 target fragment 需要直接访问另一个 fragment 的实例,这是十分危险的,因为你不知道目标 fragment 处于什么状态。...弃用 target fragment API 那么,fragment 之间传递数据更干净的方式是什么呢?
它来自lifecycle-extensions的Android Jetpack库,目前 lifecycle-extensions 中的 API 已弃用。...'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0-alpha03' 然后点击 Sync Now。...三、进程销毁时保存数据 上面讲述的是发生屏幕旋转等配置更改的情况下,activity会被销毁和重启,这个时候可以用viewmodel来自动保存数据与获取数据。...3.1 覆盖onSaveInstanceState(Bundle)函数 通过覆盖Activity.onSaveInstanceState(Bundle)的方式,就可以解决上述问题,当应用进程在意外被系统...参考:https://developer.android.com/jetpack 六、深入学习:解决问题要彻底 意思就是通过禁止应用屏旋转,以此解决设备配置改变带来的UI状态丢失问题的方式太粗暴,也不能从根本解决问题
Day 7:解构声明 Android KTX 使用解构来分配颜色的组件值。您可以在您的类中使用解构,或者扩展现有的类来添加解构。...Day 11:简化 postDelay Lambda 非常贴心,使用最后一个参数调用语法您可以取消回调,Callable 和 Runnable,例如 Android KTX 贴心的用一个小包装来处理 postDelayed...第三周学习小结: 本周主要讨论一些基本的 Kotlin 特性,如运算符重载,内联,运算符重载,懒加载,以及非常强大的 inLine,并展示了使用 Android KTX 处理内容值,捆绑包和回调时如何编写更简洁的代码...Android KTX 为一些最常见的 span 添加了扩展功能,并使 API 更易于使用。...Android KTX 允许您使用默认参数在视图的一侧设置填充。一行代码可以节省很多代码!
设置 Save State 模块 现在让我们看看如何使用 SaveState 组件。注意接下来的代码会和 Lifecycles Codelab 第六步中的一段代码十分相似。...在 Activity 或 Fragment 的 onCreate 方法中,将 ViewModelProvider 的调用修改为: //下面的 Kotlin 扩展需要依赖以下或更新新版本的 ktx 库:...//androidx.fragment:fragment-ktx:1.0.0(最新版本 1.2.4) 或 //androidx.activity:activity-ktx:1.0.0 (最新版本 1.1.0...扩展需要依赖 androidx.activity:activity-ktx:1.0.0 // 或更新版本 private val myViewModel: MyViewModel by...ViewMode 与 Kotlin 协程: viewModelScope 于 Lifecycle 的 2.1.0 版本时加入 只支持 Kotlin Android 平台上的协程 通常情况下,我们使用回调
特别注意 : ButterKnife 已停止维护 ( 新项目禁止使用该框架 ) II . Android Studio 中配置 Kotlin 和 ButterKnife 步骤 III ....特别注意 : ButterKnife 已停止维护 ( 新项目禁止使用该框架 ) ---- 1 ....: Bundle?)...import android.os.Bundle import android.util.Log import android.widget.TextView import butterknife.BindView...推荐用法 : 老版本应用 ( 没有使用 androidx ) 继续使用老版本的 ButterKnife , 新版本的应用就别用这个框架了 , 使用 JetPack 中的 视图 / 数据 绑定 ; ① 老项目
目前为止,已有超过 20 个库拥有对应的 KTX 版本,这些 KTX 库实现了常用的 Java 版本 API 的功能,包括 Android 平台 API、ViewModels、SQLite,甚至还有 Play...本文会介绍目前可用的 KTX API 并深入其中去分析它们是如何实现的。 如果您比较喜欢观看视频,可以 点击这里。...-ktx 软件包会包含 Kotlin 的扩展: // 获取最新 Lifecycle 库的版本信息 // https://developer.android.google.cn/jetpack/androidx...:$lifecycle_version" 始终导入 -ktx 软件包 要使用 Android 平台 API 的 Kotlin 扩展,导入 core-ktx 软件包即可。... = "1.3.2" implementation "androidx.core:core-ktx:$corektx_version" 大部分 ktx 功能使用 扩展函数 实现的,您可以通过 Android
对象包含网络连接的所有信息 根据需要从NetworkInfo对象取出关于网络连接的信息 1.2 特别注意 由于在API23及以上时,getNetworkInfo(int networkType)方法已被弃用...)方法被弃用 public void checkState_21(){ //步骤1:通过Context.getSystemService(Context.CONNECTIVITY_SERVICE...监听网络变化 使用BroadcastReceiver广播接收器来接收网络状态(采用系统广播) BroadcastReceiver作为Android四大组件之一; 如果不懂得如何使用BroadcastReceiver...System.out.println("网络状态发生变化"); //检测API是不是小于23,因为到了API23之后getNetworkInfo(int networkType)方法被弃用...WIFI已断开,移动数据已断开", Toast.LENGTH_SHORT).show(); } //API大于23时使用下面的方式进行网络监听 }else {
需要注意的是,Hilt仅支持扩展FragmentActivity(如AppCompatActivity)的活动和扩展Jetpack库的片段Fragment,而不支持FragmentAndroid平台(现已弃用...如何使用?...但如何将上面的代码用Hilt 改造呢?...使用@Provides告诉Hilt如何获得具体实例 用来告诉Hilt 如何提供不能被构造函数注入的类型 每当 Hilt 需要提供该类型的实例时,将执行带注释的函数的函数主体。...而且他们的作用域也都不同,有些可能只是某个Activity使用,有些是全局使用,对于这种问题我们如何解决呢? 我们可以为两个具体实现定义不同的模块并使用Qualifers规定。
目前为止,已有超过 20 个库拥有对应的 KTX 版本,这些 KTX 库实现了常用的 Java 版本 API 的功能,包括 Android 平台 API、ViewModels、SQLite,甚至还有 Play...本文会介绍目前可用的 KTX API 并深入其中去分析它们是如何实现的。...-ktx 软件包会包含 Kotlin 的扩展: // 获取最新 Lifecycle 库的版本信息 // https://developer.android.google.cn/jetpack/androidx...:$lifecycle_version" 始终导入 -ktx 软件包 要使用 Android 平台 API 的 Kotlin 扩展,导入 core-ktx 软件包即可。.../ktx Places https://developers.google.cn/maps/documentation/places/android-sdk/ktx 一旦您开始使用 -ktx 扩展,
对象包含网络连接的所有信息 根据需要从NetworkInfo对象取出关于网络连接的信息 1.2 特别注意 由于在API23及以上时,getNetworkInfo(int networkType)方法已被弃用...1.3 具体检测代码 //检测当前的网络状态 //API版本23以下时调用此方法进行检测 //因为API23后getNetworkInfo(int networkType)方法被弃用 public...监听网络变化 使用BroadcastReceiver广播接收器来接收网络状态(采用系统广播) BroadcastReceiver作为Android四大组件之一; 如果不懂得如何使用BroadcastReceiver...System.out.println("网络状态发生变化"); //检测API是不是小于23,因为到了API23之后getNetworkInfo(int networkType)方法被弃用...WIFI已断开,移动数据已断开", Toast.LENGTH_SHORT).show(); } //API大于23时使用下面的方式进行网络监听 }else {
= null override fun onCreate(savedInstanceState: Bundle?)...= null override fun onCreate(savedInstanceState: Bundle?)...找不到解决方法:a.按照上面7中的步骤配置主模块和其他组件模块,一个都不能少。...若配置完还有问题,请仔细检查每一步,直到正常跳转和数据传递,本人是亲自尝试了多个项目,基本上都没问题.14.3 数据传递和接收问题图片解决方法:a.在kotlin中使用ARouter接收数据时需要使用@...如果添加了统一的catelog配置方式后导入依赖它会自动提示,不需要开发者手动导入,这点我感觉很爽,用起来简直不要太安逸了,感兴趣的同学可以自行尝试,这里就简单举例.图片图片16.总结:其实本文的目的不是在于如何使用
作者 / 产品经理 David Winer Android Kotlin Extensions Gradle 插件 (请勿与 Android KTX 混淆) 发布于 2017 年,为使用 Kotlin...进行 Android 开发带来了两项新的便利功能: Synthetic 视图 : 您可以将调用 findViewById 替换为使用 kotlinx.android.synthetic 进行 UI 交互...在接下来的一年里,我们的团队将共同弃用 synthetics,并继续支持我们建议的选项——"视图绑定 (View Binding)"。...如果您使用 Android Kotlin synthetics,建议尽快迁移到 "视图绑定 (View Binding)"。请参阅我们的 迁移指南 以了解更多详细信息。...弃用期随着 Kotlin 1.4.20 的发布正式开始。android-kotlin-extensions 将继续保留至少一年时间,但在 2021 年 9 月或之后的 Kotlin 版本中将被移除。
前两天我还在做CameraX的小测试,不过没走通,因为现在非正式版本,等出了我再研究下吧。 ? 简单例子 ?...要使用DataBinding这个我觉得不用多主产了,直接开启这个就行,因为我用的是Kotlin所以上面还要加上kotlin-kapt 02 fragment-ktx的引用 ?...上面这个是引用fragment-ktx的引用,引用这个库时是为了让我们更简单的调用ViewModel,一会儿的代码我会写出不用这个的调用方法,和用这个的方法,当然引用这个时它会提示要使用jvm1.8,所以还需要加上下面的这步...03 lifecycle-savestate 一般来说,我们用LiveData的话,应用程序在后台切换再回来后,当前的UI界面的数据也会保存的,在新的Android版本后,一般程序到后台一段时间后,系统会直接杀死程序了...import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.activity.viewModels
Hi,你好 引言 关于 ViewModel ,Android 开发的小伙伴应该都非常熟悉,无论是新项目还是老项目,基本都会使用到。...本文对应的组件版本: Activity-ktx-1.5.1 ViewModel-ktx-2.5.1 本篇定位中等,将从背景与使用方式开始,再到源码解读。...ViewModel使用方式 作为文章的开始,我们还是要先聊一聊 ViewModel 的使用方式,如下例所示: 当然,你也可以选择引入 activity-ktx ,从而以更简便的写法去写: implementation...SavedStateHandle使用方式 我们知道,ViewModel 可以处理因为配置更改而导致的的状态丢失,但并不保证异常终止的情况,而官方的 SavedStateHandle 正是用于这种情况的解决方式...如果当前已创建,则直接使用;反之则调用我们的 ViewModel工厂 create() 方法创建新的 ViewModel。 创建完成后,并将其保存到 ViewModelStore 中。
1、安装Android Studio 最新版本 目前最新版本是3.4,前往https://androidstudio.googleblog.com/下载最新版本。...:navigation-fragment:$nav_version" // use -ktx for Kotlin implementation "android.arch.navigation..."android.arch.navigation:navigation-testing:$nav_version" // use -ktx for Kotlin } 3、创建Navigation 新建一个项目...navigate有好几个方法,如下: 有个带bundle参数的,可以用这个传递参数: val bundle = Bundle() bundle.putString("text","aaaaaa")...android:defaultValue="Hello" app:type="string"/> 使用: //使用FragmentBArgs val bundle = FragmentBArgs.Builder
也许你还没有使用这个新的武器,那么我真的建议你去使用一下,感受下这个新武器的快准狠,感受下这个新架构的精妙解耦。...” 主要指的就是数据绑定库DataBinding,下面从六个方面具体介绍下 配置应用使用数据绑定: android { ......所以解决办法就是实现解耦,让需要管理生命周期的类自己管理,这样Activity也不会遗漏和臃肿了。...很常见的一点就是可以减少内存泄漏和崩溃情况了呀,想想以前你的项目中针对网络接口返回数据的时候都要判断当前界面是否销毁,现在LiveData就帮你解决了这个问题。 具体为什么能解决崩溃和泄漏问题呢?...implementation "androidx.room:room-rxjava2:$room_version" } 2)建立数据库类,声明数据库表成员,数据库名称,数据库版本
是属于Android Jetpack的一部分, 可以让组件自己管理生命周期的逻辑,避免每次调用时的繁琐步骤,用Lifecycle实现的组件可以实现生命周期的监听,数据变化的监听等功能。..." annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version" // 如果用的是java8使用以下的依赖...compiler:$lifecycle_version" // 如果用的是java8使用以下的依赖 implementation "android.arch.lifecycle:common-java8...怎么解决这个问题?...android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable
准备 在 Android Studio 3.2 Canary 14 以上的版本中,打开 Preferences -> Experimental -> Enable Navigation Editor,...nav_version" // use -ktx for Kotlin implementation "android.arch.navigation:navigation-ui:$nav_version..." // use -ktx for Kotlin // optional - Test helpers androidTestImplementation "android.arch.navigation...:navigation-testing:$nav_version" // use -ktx for Kotlin 创建资源文件 在 res 目录右击,选择 New > Android Resource...Navigation Architecture Component 使用详解
(在API级别26中已弃用。使用getLargeIcon(),它支持更多种图标源。)...(在API级别26中已弃用。使用getSmallIcon(),它支持更多种图标源。)...(在API级别26中已弃用。...(在API级别26中已弃用。...(在API级别26中已弃用。
领取专属 10元无门槛券
手把手带您无忧上云