自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 问答 (8)
  • 收藏
  • 关注

原创 Kotlin学习ing

【代码】Kotlin学习ing。

2024-04-14 17:35:24 151

原创 安装时权限与运行时权限

如果您确定您的应用必须访问受限数据或执行受限操作才能实现某个用例,请声明相应的权限。有些权限是用户安装应用时自动授予的权限,称为。即可获取相关信息或执行相关操作。您可以在您的应用中实现很多用例(例如拍照、暂停媒体播放和展示相关广告),而无需声明任何权限。如果您的应用提供的功能可能需要访问受限数据或执行受限操作,请确定您是否。其他权限则需要应用在运行时进一步请求权限,此类权限称为。

2024-04-14 17:34:45 139

原创 OkHttp 的具体用法

当然,上述代码只是创建了一个空的Request对象,并没有什么实际作用,我们可以在最终的 build()方法之前连缀很多其他方法来丰富这个Request对象。接下来的操作就和GET请求一样了,调用execute()方法来发送请求并获取服务器返回的数据即可。下面我们来看一下OkHttp 的具体用法。

2024-04-14 17:34:08 171

原创 @JvmDefaultWithout/WithCompatibility

如果你的库或应用程序需要与现有Java代码保持二进制兼容性,尤其是在接口可能在将来进行修改时,选择带兼容性访问器的类或接口是更保守的选择。如果你的项目已经存在,并且需要与现有的Java代码进行交互,特别是在Java代码中实现了Kotlin接口的默认方法,那么选择带兼容性访问器的类或接口是一个安全的选择。如果你的接口是一个公共API,可能被其他项目或团队使用,那么选择带兼容性访问器的类或接口通常是一个更安全的选择,以避免破坏现有的实现。,则生成的类或接口将不包含专门的兼容性访问器,而。

2024-04-14 17:32:37 431

原创 gradle 相关

library可以通过多种格式上传到远程仓库,比如大部分情况下用到的.jar或.aar。当没有指定@后缀的话,依赖的时候将会下载它的默认格式(由上传方定义,如果没有定义则默认为.jar)的Library库。那么所有的依赖树均可以下载下来。

2024-03-08 15:12:35 387

原创 MoPub NativeAd(RecyclerView)

【代码】MoPub NativeAd(RecyclerView)

2024-01-05 15:30:09 414

原创 RecyclerView 与 ListView 区别和使用

RecyclerView 需要设置布局(LinearLayoutManager、GridLayoutManager、StaggeredGridLayoutManager)里,载入子项布局、获取子项数据、绑定子项布局和子项数据。ListView 的 Adapter 只有在。

2024-01-04 15:02:53 400

原创 在同步块内部,需要再次尝试获取已存在的实例

了第一层检查,但一次只能有一个线程能够获得同步锁,进入同步块。这多个线程之后也会陆续进入同步块,所以需要再次检查。在同步块内部,需要再次尝试获取已存在的实例。这是因为在第一步检查时,可能有多个线程。

2023-12-28 15:01:38 354

原创 Functional SAM interfaces

而不是创建手动实现接口的类,让代码更简洁易懂。当接口只有一个抽象方法时,该接口被称为。

2023-12-28 10:35:00 358

原创 【Android】DeepLink

允许应用程序自己去处理那些域名或URL(使得当用户点击那些链接时,系统会直接启动关联的应用程序,而不是打开网页浏览器)。但是这个过程存在问题,当用户点击一个URL,可能会弹出一个对话框让用户去选择一个应用去处理这个URL。Android应用链接是基于您的网站URL的深度链接,该链接已被验证属于您的网站。当用户点击那个URL时,它会打开你的应用。深链接可以帮助用户从网页跳转到应用,使用URLs让用户直接跳转到应用的特定界面。打开该应用有被用户指定的应用(用户更倾向的应用)。打开只能处理这个URI的应用。

2023-12-14 11:34:41 170

原创 【Android】动态添加 Fragment

方法实现,需要传入容器的id和待添加的。(4) 向容器内添加或替换。

2023-12-14 10:41:48 197

原创 【Android】Activity 的恢复

Activity 被回收,在 onSaveInstanceState 存入数据,在 onCreate 恢复数据。

2023-12-14 10:35:04 148

原创 【Android】toolbar & DrawerLayout

从视图的哪一边出现:左或右(或者在支持布局方向的平台版本上开始/结束)。请注意,窗口的每个垂直边缘只能有一个抽屉视图。如果您的布局为每个窗口的垂直边缘配置了多个抽屉视图,则将在运行时抛出异常。的定位和布局是使用子视图上的’ android:layout_gravity '属性来控制的,对应于你想让。,允许从窗口的一个或两个垂直边缘拉出交互式“DrawerLayout作为窗口内容的。要使用drawlayout,

2023-12-14 10:13:00 39

原创 【Android】通知(未完待续)

Android 8.0 系统引入了这个概念。每条通知都要属于一个对应的渠道。我们的应用程序如果想要发出通知,也必须创建自己的通知渠道才行。

2023-12-13 15:40:00 126

原创 【Kotlin】静态方法

Kotlin 却极度弱化了静态方法这个概念,非常推荐使用的方式来实现。虽然这里的doAction()方法并不是静态方法,但是我们仍然可以使用的方式来调用,这就是单例类所带来的便利性。不过,使用单例类的写法会将整个类中的所有方法全部变成类似于静态方法的调用方式。如果我们只是希望让类中的某一个方法变成静态方法的调用方式该怎么办呢?这个时候就可以使用刚刚在最佳实践环节用到的了。不过,方法其实也并不是静态方法,这个关键字实际上会在Util类的内部创建一个伴生类,而方法就是定义在这个伴生类里面的实例方法。只是。

2023-12-11 10:31:04 418

原创 【Kotlin】标准函数:let、with、run、apply

let既不是操作符,也不是什么关键字,而是一个函数。这个函数提供了函数式API的编程接口,并。这里调用了obj对象的let函数,然后Lambda 表达式中的代码就会立即执行,并且 这个obj对象本身还会作为参数传递到Lambda 表达式中。不过,为了防止变量重名,这里我将 参数名改成了obj2,但实际上它们是同一个对象。

2023-12-11 10:16:39 263

原创 【Kotlin】

就是一个普通的函数而已,只不过它接收的是一个Lambda 类型的参数,并且会在遍历集合时将每次遍历的值作为参数传递给Lambda 表达式。工作原理是根据我们传入的条件来遍历集合,从而找到该条件下的最大值,比如说想要找到单词最长的水果, 那么条件自然就应该是单词的长度了。函数体中可以编写任意行代码(虽然不建议编写太长的代码),并且最后一行代码会自动作为Lambda 表达式的返回值。如果有参数传入到 Lambda 表达式中的话,我们还需要声明参数列表,参数列表的结尾使用一个。首先,最外层是一对大括号。

2023-12-08 19:32:18 318

原创 【BroadcastReceiver】

当系统时间发生变化时,系统发出的正是一条值为android.intent.action.TIME_TICK的广播。也就是说,我们的BroadcastReceiver想要监听什么广播,就添加相应的action.最后要记得,动态注册的BroadcastReceiver一定要取消注册才行!

2023-12-06 17:54:13 40

原创 ListView基本用法与性能提升

这些都在 Adapter 中处理。

2023-12-05 15:09:52 848

原创 【Android】最好用的网络库:Retrofit

最后,我们也完全不用关心网络通信的细节,只需要在接口文件中声明一系列方法和返回值, 然后通过注解的方式指定该方法对应哪个服务器接口,以及需要提供哪些参数。事实上,Retrofit 就是Square 公司在OkHttp 的基础上进一步开发出来的应用层网络通信库,使得我们可以用更加面向对象的思维进行网络操作。Retrofit和OkHttp的定位完全不同:OkHttp 侧重的是底层通信的实现,而Retrofit 侧重的是上层接口的封装。另外,Retrofit 允许我们对服务器接口进行归类。

2023-12-01 16:15:08 653

原创 【Android】HttpURLConnection、OkHttp

WebView 已经在后台帮我们处理好了发送HTTP请求、接收服务器响应、解析返回数据,以及最终的页面展示这几步工作。只不过它封装得实在是太好了,反而使得我们不能那么直观地看出HTTP到底是如何工作的。因此,接下来我们通过的方式,更加深入地理解这个过程。在过去,Android上发送HTTP请求一般有两种方式:HttpURLConnection 和HttpClient。不过由于HttpClient 存在API数量过多、扩展困难等缺点,Android团队越来越不建议我们使用这种方式。

2023-12-01 14:48:11 301

原创 【Android】WebView 基本使用

【代码】【Android】WebView 基本使用。

2023-12-01 14:15:07 246

原创 【Android】IntentService

另外,根据 IntentService 的特性,这个Service 在运行结束后应该是会自动停止的,所以我们又重写了 onDestroy()方法,在这里也打印了一行日志,以证实Service 是不是停止了。这里的thread是一个Kotlin内置的顶层函数,我们只需要在Lambda 表达式中编写具体的逻辑就可以了,连start()方法都不用调用,thread函数在内部帮我们全部都处理好了。所以,我们应该在Service 的每个具体的方法里开启一个子线程,然后在这里处理那些耗时的逻辑。

2023-12-01 14:04:47 272

原创 【Android】前台Service

从Andr oid 8.0 系统开始,只有当应用保持在前台可见状态的情况下,Service 才能保证稳定运行,一旦应用进入后台之后,Service 随时都有可能被系统回收。前台Service启动后 即使退出应用程序,MyService 也会一直处于运行状态,而且不用担心会被系统回收。前台Service 和普通Service 最大的区别就在于:它一直会有一个正在运行的图标在系统的状态栏显示,下拉状态栏后可以看到更加详细的信息,非常类似于通知的效果。

2023-12-01 11:47:12 249

原创 【Abdroid】Service

其实onCreate()方法是在Service 第一次创建的时候调用的,而方法则在每次启动Service 的时候都会调用。

2023-12-01 11:28:21 27

原创 【Android 线程】在子线程中更新UI

方法中的代码也会在主线程中运 行,于是我们在这里就可以安心地进行UI操作了。简单来说,使用 AsyncTask 的诀窍就是,方法,就可以轻松地从子线程切换到UI线程了。中取出待处理消息,最后分发回。方法中执行一些任务的收尾工作。之后,这条消息会被添加到。的构造函数中我们传入了。方法中执行具体的耗时任务,的队列中等待被处理。方法中进行UI操作,

2023-12-01 11:03:27 495

原创 231031

链接:https://leetcode.cn/problems/valid-parentheses/solutions/373578/you-xiao-de-gua-hao-by-leetcode-solution/商业转载请联系作者获得授权,非商业转载请注明出处。来源:力扣(LeetCode)

2023-10-31 11:32:44 53

原创 索引(含B树、B+树)

索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制。一张表的一个字段可以添加一个索引,当然,多个字段联合起来也可以添加索引。,是为了而存在的机制。索引检索(效率高):先通过目录(索引)去定位一个大概的位置,然后直接定位到这个位置,做局部性扫描,缩小扫描范围,快速查找如果某个字段(name字段)没有添加索引(目录),或者说没有name字段创建索引,MySQL会进行全扫描,会将name字段上的每个值都比对一遍MySQL:1、全表扫描;2、根据索引检索。

2023-09-24 00:58:06 135

原创 【百度0912】选择题

动态优先级原则停止adb服务的命令IPv4报文头部Kotlin 尾递归二分算法思想30个顶点,边数不可能是(5、500、10、50)(判断)栈有记忆作用静态重定位8086系统优先响应(单步中断、INTR、内部软件中断、NMI)AIDL、Intent、ContentProvider、Bundle死锁里的PV操作的作用ViewGroup dispatchTouchEvent() 调用主ViewINNER/OUTER/RIGHT/LEFT JOINp(qp)* 对应最简NFA

2023-09-12 22:39:14 279

原创 【小红书0819】笔试

InnoDBFIN_WAIT_1运行期异常串S的next数组值PV操作(P-Product-生产者-消费资源)抽象类和接口的异同

2023-09-12 16:38:33 67

原创 seq2seq与引入注意力机制的seq2seq

【即:包含了整个句子的所有特征】 作为编码器的输入;解码器使用另一个 RNN 去输出。编码器-解码器:输入 → Encoder → 中间状态 → Decoder(← 新输入) → 输出与一般的模型不同的是,在 Decoder 可能会接受新的输入。编码器相当于在“提取特征”。解码器相当于“从特征(中间态)还原出输出”

2023-09-01 23:13:40 512

原创 字节 比特

位 = 比特 = bit字节 = Byte = B。

2023-08-27 16:50:03 135

原创 (四)Redis——Hash

【代码】(四)Redis——Hash。

2023-08-26 19:53:58 34 1

原创 (三)Redis——SortedSet

感觉这个set有点像hash啊……

2023-08-26 19:48:10 28

原创 (三)Redis——Set

判断 aaa 是否在 set 中。

2023-08-26 18:03:06 433

原创 (二)Redis——List

1表示末尾。

2023-08-26 17:55:11 519

原创 (一)Redis——String

只有当key存在时才有用。

2023-08-26 17:26:48 603

原创 在线程池中,当等待队列已满并且有新的任务提交时

如果等待队列已满,新提交的任务会被阻塞,直到有空闲线程可用或者有任务被执行完成释放出一个线程资源。这种策略可以确保不会创建额外的线程,而是等待队列中的线程执行完任务后再分配线程去执行新任务。总的来说,线程池的行为通常由其配置参数和具体实现方式来决定,但在绝大多数情况下,不会创建临时线程来处理等待队列中的任务。在某些特殊情况下,可能会实现一种临时线程创建策略,但这不是线程池的标准行为。这可以在特定的应用场景中用来处理突发性的任务负载,但需要格外小心管理临时线程的生命周期和资源消耗。

2023-08-25 16:42:06 937

原创 “无Internet连接但是可以上网” 解决全流程

先说我的最后解决方法:修改注册表下的项:将1改成0。

2023-08-22 10:58:25 753 2

原创 设计模式——工厂模式

是一种设计模式,它用于创建对象,帮助我们在不直接调用构造函数的情况下创建对象实例。这种模式使得我们能够将对象的创建过程抽象出来,使代码更加灵活、可维护,并且能够屏蔽底层实现细节。,使得代码更加灵活,能够在不改变使用对象的代码的情况下,更换不同的对象实现。这些工厂方法在背后可能根据不同的情况返回不同的实现类的实例。你可以把它想象成一个生产线,根据不同的需求来制造不同类型的产品。方法是一个静态工厂方法,它返回一个。类提供的工厂方法来创建实例。也是一个静态工厂方法,用于创建。在工厂模式中,有一个专门的。

2023-08-11 13:40:16 734

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除