Android-Kotlin-单例模式】的更多相关文章

2017 Google I/O 大会开始就宣布,将Kotlin语言作为安卓开发的一级编程语言.        Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发.   Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行.   JetBrains,作为目前广受欢迎的Java IDE IntelliJ 的提供商,在 Apache 许可下已经开源其Kotlin 编程语言.   Kotlin已正式成为Android官方支持开发…
都是一些Android适用的Kotlin小函数. 1.点击空白隐藏键盘 //点击空白隐藏键盘 override fun onTouchEvent(event: MotionEvent): Boolean { val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager if (event.action == MotionEvent.ACTION_DOWN) { if (this@LoginMain.c…
这是一个data class从JSON字符串生成Kotlin 的插件,换句话说,是一个将JSON字符串转换为Kotlin data class(Json到Kotlin)的插件 在使用Kotlin进行开发的时候,我们需要经常对Json数据做解析和处理, Java开发的时候有GsonFormat插件,在Kotlin的开发环境中肯定也不能少了这个插件. 对于Kotlin开发人员来说,这是一个非常酷的工具,它可以将JSON字符串转换为Kotlin data class.该工具不仅可以识别基元类型,还可以…
前言 Q1的时候公司列了个培训计划,部分人作为讲师要上报培训课题.那时候刚从好几个Android项目里抽离出来,正好看到Jetpack发布了新玩意儿--Compose,我被它的快速实时打包给吸引住了,就准备调研一下,于是上报了此次课题. 名词解析: 以下用到的专业术语可能会有出入,为了避免混淆,下面做一个名词解析表: 名词 解析 备注 组件 可以控制页面展示的部分UI的逻辑单元 View 可以展示的UI,并具备自己维护状态的能力 微件 同组件,可以控制页面展示的部分UI的逻辑单元 Compose…
Android官方推荐使用协程来处理异步问题.以下是协程的特点: 轻量:单个线程上可运行多个协程.协程支持挂起,不会使正在运行协程的线程阻塞.挂起比阻塞节省内存,且支持多个并行操作. 内存泄漏更少:使用结构化并发机制在一个作用域内执行多项操作. 内置取消支持:取消操作会自动在运行中的整个协程层次结构内传播. Jetpack集成:许多Jetpack库都包含提供全面协程支持的扩展.某些库还提供自己的协程作用域,可用于结构化并发. 示例 首先工程中需要引入Kotlin与协程.然后再使用协程发起网络请求…
Annotation Processer 注解处理器(Annotation Processer)是javac内置的注解处理工具,可以在编译时处理注解,让我们自己做相应的处理.比如生成重复度很高的代码,butterKnife就是借助Annotation Processer来生成findViewById的代码. 本文主要介绍Kotlin环境下如何使用. Kotlin环境先要使用Annotation Processer需要注意一下几点 a.相关的模块语言必须是kotlin b.依赖注解处理模块时需要使…
java模式之单例模式:单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例.特点:1,一个类只能有一个实例2,自己创建这个实例3,整个系统都要使用这个实例 Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在.在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作.一些资源管理器常常设计成单例模式.外部资源:譬如每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中.每台计算…
同步的时候遇到这个问题,从log上看是因为gradle的版本不包含kotlin 1.2.51这个method,具体原因我也不是很清楚,大概猜测是kotlin版本的问题,而最新的版本就是1.2.51,所以就试着把后面的删除了,问题是解决了,但是不明觉厉,有大神路过的,还望指点一二.…
使用kotlin-kapt插件 依赖由java的annotationProcessor改为kapt 在使用控件绑定使用时,网上搜使用方法,不知道被哪个家伙带坑里了. //错误用法 @BindView(R.id.tv_title) lateinit var tvTitle :TextView 导致使用控件时,根本没有绑定成功,报错kotlin.UninitializedPropertyAccessException: lateinit property title has not been ini…
由于近期网上搜索了很多Android连接到http的方法, 可是2013年以前的方法现在都不能用了,要么报错,要么被遗弃,岁月留下来的东西只能自己整理了. 其实很简单,就一个HttpUtil通用类.可以实现Get和Post方法,其他东西,里面可以随便改改,基本就这样吧. 参数的话,我用了一个 strUrlPath网址.params键值对.encode编码(如utf-8). package Util import android.os.Handler import android.os.Messa…
1.单例模式就是确保一个类,只有一个实例化对象,而且自行实例化并向整个系统提供这个实例. 2.使用场景: 确保某个类,有且只有一个对象,避免产生对个对象,消耗过多的资源. 2.实现单例模式的重要点: <1> 构造函数不对外开放,一般为private. <2>通过一个静态方法或枚举返回一个单例类对象 <3>确保单例对类的对象有且只有一个,尤其是在多线程环境中 <4>确保单例类对象在反序列化时不会重复构建对象 3.简单的单例模式 [饿汉模式] public cl…
Android开发人员文档: 数据绑定入门 数据绑定库 生成的绑定类 布局和绑定表达式 1. 搭建环境build.gradle:app apply plugin: "kotlin-kapt" android { ... dataBinding { enabled = true } } 2. 使用 layout data绑定你的视图 <?xml version="1.0" encoding="utf-8"?> <layout>…
kotlin.concurrent.thread{ val url = "https://hangj.cnblogs.com/" val res = try { java.net.URL(url).readText() } catch (ex: Exception) { return@thread } runOnUiThread { println("res: $res") } } https://stackoverflow.com/a/62025764/19360…
只需要用 companion object 包裹相应代码块即可.以静态属性为例: class Constants { companion object { val BASE_URL = "http://192.168.x.x/decoration_axx_api/" }}12345调用 Constants.Companion.getBASE_URL()--------------------- 作者:灭谛 来源:CSDN 原文:https://blog.csdn.net/u010296…
class Single{ companion object { val instance:Single by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { Single() } } } 2 object Single{ }…
尝试了 URLConnection.guessContentTypeFromStream(ByteArrayInputStream(bytes)) 和 Tika().detect(bytes) 一个识别不了视频,另一个直接报一堆错 google 很久也没找到可用代码,只好自己动手 fun byteArrayOfInts(vararg ints: Int) = ByteArray(ints.size) { pos -> ints[pos].toByte() } val sig2mime = Has…
UI 只能在主线程内更新,子线程需要更新UI组件时可以这样: fun fuck(){ Executors.newSingleThreadExecutor().execute{ // url request ... val visibility = View.VISIBLE Handler(mainLooper).post { val btn = findViewById<Button>(R.id.button) btn.visibility = visibility } } Thread{ p…
http://blog.csdn.net/fangchongbory/article/details/7734199   目录(?)[+] 单例模式常见情景 首先实现1中的单例模式A 实现2中单例模式B 实现3单例模式C 实现4单例模式D 可带参数单例模式E 终极版单例模式F android中源码单例模式举例 日历模块 Collator类 Editable类 AccessibilityManager类   1.单例模式常见情景 设计模式中,最简单不过的就是单例模式.先看看单例模式 原文:http…
Android精选源码 2048游戏源码 android实现获取号码归属地和其他信息诈骗.骚扰 android kotlin仿开眼app源码 android多种reveal动画效果 android Kotlin开发的一款超简单的图片浏览源码 根据图片高度动态变化的ViewPager 渐变颜色渐变文字渐变图像GradualshowcolorAndResourse android各种各样的跑马灯样式 android一款仿miui小米日历源码 Android优质博客 Android一步一步教你实现QQ…
使用单例模式造成的内存泄漏 Android的单例模式在我们项目开发中经常会用到,不过使用的不恰当的话也会造成内存泄漏.因为单例的静态特性使得单例的生命周期和应用的生命周期一样长, 这就说明了如果一个对象已经不需要使用了,而单例对象还持有该对象的引用,那么这个对象将不能被正常回收,这就导致了内存泄漏. Android中习惯使用单例的常见类: xxxManager , xxxHelper , xxxUtils 等 我们举个例子: 1. 新建一个工程. 2. 配置好LeakCanary检测环境. 3.…
Singleton模式可以是很简单的,它的全部只需要一个类就可以完成(看看这章可怜的UML图).但是如果在“对象创建的次数以及何时被创建”这两点上较真起来,Singleton模式可以相当的复杂,比头五种模式加起来还复杂,譬如涉及到DCL双锁检测(double checked locking)的讨论.涉及到多个类加载器(ClassLoader)协同时.涉及到跨JVM(集群.远程EJB等)时.涉及到单例对象被销毁后重建等. 目的: 希望对象只创建一个实例,并且提供一个全局的访问点. 图6.1 单例模…
Android Gradle从Groovy迁移到Kotlin Android项目用Gradle构建, 其脚本语言之前是Groovy, 目前也提供了Kotlin的支持, 所以可以迁移到Kotlin. 官方的迁移文档: Migrating build logic from Groovy to Kotlin 说明的是更通用的步骤. 本文通过一个具体的Android项目来举例如何迁移, 文后附有sample. 名词概念解释 Gradle: 自动化构建工具. 平行产品: Maven. Groovy: 语言…
Android精选源码 直观了解Android的"形状"属性如何影响Drawable的外观. 一个灵活的视频播放器, 可替换播放器内核. android锁屏输入密码功能源码 背景动态模糊方案,组件实现类对bitmap模糊处理的各类算... 简单天气,带自动定位 超完整的Android Kotlin 项目,功能丰富,适合学习和使用 android模仿抖音右下角控件效果源码 Android记账小软件毕业设计源码 基于rtsp无服务器局域网录屏和直播的封装 android仿淘宝点击显示物流详…
Android Weekly Notes Issue #230 November 6th, 2016 Android Weekly Issue #230. Android Weekly笔记, 本期内容包括: Mockito的扩展; ConstraintLayout的链式约束; Kotlin的Async-Await; RxJava2.0; 屏幕旋转导致的Activity重建; Throwable类的设计问题; Espresso测试中如何等待异步请求返回; Kotlin的扩展和运算符重载; Andr…
Kotlin的强悍震精了我,android中每个应用都会用到SharedPreference在Kotlin中使用竟是如此简单! package com.android.extkt import android.content.Context import kotlin.properties.ReadWriteProperty import kotlin.reflect.KProperty /** * Preference * * @author 祁连山™ * @date 2016-12-09 *…
在Android开发中,内存泄漏是比较常见的问题,有过一些Android编程经历的童鞋应该都遇到过,但为什么会出现内存泄漏呢?内存泄漏又有什么影响呢? 在Android程序开发中,当一个对象已经不需要再使用了,本该被回收时,而另外一个正在使用的对象持有它的引用从而导致它不能被回收,这就导致本该被回收的对象不能被回收而停留在堆内存中,内存泄漏就产生了. 内存泄漏有什么影响呢?它是造成应用程序OOM的主要原因之一.由于Android系统为每个应用程序分配的内存有限,当一个应用中产生的内存泄漏比较多时…
在项目中使用Anko Dialogs dependencies { compile "org.jetbrains.anko:anko-commons:$anko_version" compile "org.jetbrains.anko:anko-design:$anko_version" // For SnackBars } Toasts toast("hello anko") toast(R.string.message) longToast(…
之前我使用TextView+Handler+动画,实现了一个简单的仿淘宝广告条的滚动,https://download.csdn.net/download/qq_35605213/9660825: 无意中发现ViewFlipper这个控件,拿来一试:很轻松的就实现了文字的替换功能: 下载地址:点击打开链接 代码: private ViewFlipper vf; @Override protected void onCreate(Bundle savedInstanceState) { super…
https://kotlinlang.org/docs/reference/  官方 https://github.com/JetBrains/kotlin/releases   Kotlin SDK https://github.com/JetBrains/kotlin Kotlin Programming Language Welcome to Kotlin! Some handy links: Kotlin Site Getting Started Guide Try Kotlin Kot…
本文由作者邹丽萍授权网易云社区发布. 背景 Kotlin 是 JetBrains 公司(著名的 IntelliJ IDEA 正是由这家公司开发的,Android Studio 也是基于 IDEA 的)在 2011 年推出的在 JVM 上运行的静态类型编程语言,2016 年发布了第一个稳定版本, 2017 年 Google I/O 上被 Google 定为 Android 开发一级语言.Kotlin 与 Java 100% 兼容等特性和 Google 官方支持等诸多因素的影响下,开始了对 Kotl…