Kotlin——面向对象编程 如果将open和abstract两个修饰符放在一起使用,编译器会发出警告,open是Kotlin新引入的修饰符,open是final的反义词,用于修饰一个类、方法、或属性,表明类可派生子类、方法或属性可被重写一个Kotlin类可以有01个主构造器和0N个次构造器。
Kotlin——集合 Kotlin为Collection接口派生了一个子接口,即MutableCollection,该子接口又包含了两个子接口:MutableSet和MutableList,这一分支表示Kotlin的可变集合,只有可变集合才可以添加、删除、修改元素、不可变集合只能读取元素。
Kotlin-内联函数inline 内联函数不需要产生额外的生成函数对象,也不需要产生捕获,也不需要处理函数调用的压栈和出栈开销如果将inline取消,系统会生成对应的class文件,这表明系统将会为Lambda表达式额外生成一个函数对象,自然也会产生函数调用的压栈和出栈的开销。
kotlin-运算符 num1 in 7 downTo 1 step 2 在in后面的全部内容是一个表达式,并不是num1 in 7 代表一个表达式。半开区间运算符a until b 用于定义一个从a~b(包括a边界值,但不包含b边界值)的所有值的区间,a不能大于b。现在默认的区间步长都是1,也就是区间内的两个值差值是1,而通过step运算可以显示指定区间的步长。如果希望区间从大到小,可以使用downTo运算符,对于a downTo b来说,b不能大于a。
Kotlin-变量定义,与类型 Kotlin可以定义的时候不标明数据的数据类型,编译器会根据初始值确定类型var b:Int//声名变量的时候指定初始值,编译器会根据初始值确定该变量的类型为Stringb = 20var sum :String = 500 //当变量的类型已经确定,但是用户赋值不一致时会报错val a = "你好"
Service和启动其他应用的功能和替换Fragment System.currentTimeMillis()的时间会有误差,如果时区不同会造成误差,所以使用SystemClock.elapsedRealtime();其中从最近任务栏进入wps如果不经过特殊处理则不能进入。2.修改SERVICE。
UI线程和bitmap AsyncTask 的四个方法,只有 doInBackground 方法是运行在其他线程中,其他三个方法都运行在 UI 线程中,也就说其他三个方法都可以进行 UI 的更新操作。在ondraw时候尽量不要处理太多的事情,比如画圆什么的,移动的尽量是一个固定的图片,比如移动bitmap。不能在 UI 线程中进行耗时操作,否则会阻塞 UI 线程,引起 ANR、卡顿等问题。只能在 UI 线程中调用 AsyncTask 的 execute 方法。只能在 UI 线程操作 UI 视图,不能在子线程中操作。
Android第三方库的使用 使用getJson读取json文件里面的内容,然后使用gson.fromJson配合item项读取factorytextItem,最后setItem。保存数据使用mSignalSourceBean.save();这样就可以保存数据库中的数据。在Application中使用。
Kotlin的内置函数 apply、let、run、with、also 方法返回值自身指代是否传参let最后一行it否apply自身this否run最后一行this否with最后一行this是also自身it否。
kotlin的== 和 === 的区别 因为这里的a经过装箱后本身已经一个对象,所以赋给a1和a2的时候是把直接把对象a赋给它们,所以此时a1和a2指的是同一个对象(对象a)。既然是同一个对象,那么数值大小和地址肯定都是相等的了(也就是说a,a1和a2这三个对象指向同一处地址,所以其实。所以无论是 a == a 还是 a === a 都是返回true,因为是同一个变量,数值大小和地址都是相等的。之间的数装箱时并不会创建新的对象,所以这里a1和a2装箱后的对象是同一个,a1 ===a === a1和a === a2也是返回true)。
启动服务报错:Context.startForegroundService() did not then call Service.startForeground(): android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground():
百分比布局导入依赖以及使用——第一行代码 但是第一行代码的Android版本太低了,所以会遇到很多小白解决不了的问题,比如安卓中版本规则的修改问题。还有就是写的时候可能没有写完也会报错的,所以读者不妨先将我的代码复制到自己的AndroidStudio中看看报错不报错,然后再自己写一遍。我在我的build.gradle中添加了这几句,最初我输入的版本也是24.2.1版本但是系统提示版本不对,查看之后发现我的。这里值得一提的是经过第一步的步骤最外面的标签以及不报错了,但是Button报错,主要是因为。一定要看自己的targetSdk版本,要对应的。..
在Vue中,主体的组件每个都出现了两次 第一次接触Vue,跟着视频学习,发现在主体中每个组件都出现了两次,看别人写的博客也看不懂,只能看着视频在慢慢检查,还是没有发现错误。但是发现在,只有主体重的重复了两次,侧边栏和导航栏都没有出现两次<template> <div><!-- 头部--> <Header /><!-- 主体--> <div style="display: flex"><!-- 侧边栏-->