<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lyjSmile的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lyjSmile</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lyjSmile]]></copyright><item><title><![CDATA[SystemUI Flag 与/或 符号的去除与添加]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/129536625</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/129536625</guid><author>lyjSmile</author><pubDate>Tue, 14 Mar 2023 18:45:08 +0800</pubDate><description><![CDATA[【代码】SystemUI Flag 与/或 符号的去除与添加。]]></description><category></category></item><item><title><![CDATA[判断TextView设置的文字是否全部显示出来]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/110131268</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/110131268</guid><author>lyjSmile</author><pubDate>Wed, 25 Nov 2020 15:20:41 +0800</pubDate><description><![CDATA[1.背景
在日常开发中，我们可能需要控制我们的TextView的字数显示，当文字太多的时候，我们需要省略号显示，给用户一个全部的按钮，用户点击全部，再展示出所有的文字。
2.实现
1.用省略号显示我们在xml中给TextView配置两个属性就行了
android:ellipsize=“end”
android:maxLines=“3”
2.判断当前我们设置的文字是否全部显示出来
写在自定义TextView中
    public void handleTextContentShow() {
    //注意]]></description><category></category></item><item><title><![CDATA[Kotlin kotlinx-coroutines-core kotlinx-coroutines-android 异常]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/109068384</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/109068384</guid><author>lyjSmile</author><pubDate>Wed, 14 Oct 2020 11:34:10 +0800</pubDate><description><![CDATA[碰到个异常记录下坑
Module with the Main dispatcher is missing. Add dependency providing the Main dispatcher, e.g. ‘kotlinx-coroutines-android’ and ensure it has the same version as 'kotlinx-coroutines-core’
解决办法：
如果你是Debug的版本未混淆代码，抛出这种异常，那应该是你两个协程库的版本不一致导致，所以把两个库的版]]></description><category></category></item><item><title><![CDATA[记录腾讯的一面算法题]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/107334164</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/107334164</guid><author>lyjSmile</author><pubDate>Tue, 14 Jul 2020 11:43:52 +0800</pubDate><description><![CDATA[腾讯的一面算法题：
记录下
题目：给定两个超大的数字，超过了int的范围，用字符串表示，请把他们相加后用字符串返回。
一：分析
题目给我们两个字符串表示的数字，超过了Integer的范围，所以我们不能单纯的用Integer去相加了。
我们可以把字符串拆开，从个位开始去相加，有进位的就往前进一位相加。用StringBuilder去添加每次相加的数。最后再返回StringBuilder的反转。
二：代码实现
在面试的时候呢，不仅仅只能考虑实现算法，面试官可能还会看你对边界情况的考虑，和代码的可阅读性等。在写的时]]></description><category></category></item><item><title><![CDATA[深入理解Java泛型的用法 征服Java面试]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/105695370</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/105695370</guid><author>lyjSmile</author><pubDate>Sat, 25 Apr 2020 21:04:27 +0800</pubDate><description><![CDATA[Java泛型
相信看到这篇文章的人都是来为面试做准备的，这篇文章就带你彻底征服面试官对Java泛型的考察。
我们首先带着几个问题去了解。
一.泛型是什么，你为什么要使用泛型
1.泛型是java中的一种形式参数，可以理解为Java的一个语法。
2.好处：
1）.使用泛型能增加我们代码的可重用性。
2）.泛型能帮我们把一些错误提前在编译期。例如ClassCastException，在编译期间就会提示你...]]></description><category></category></item><item><title><![CDATA[删除链表的节点。]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/103482111</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/103482111</guid><author>lyjSmile</author><pubDate>Tue, 10 Dec 2019 20:19:11 +0800</pubDate><description><![CDATA[1.题目：
请编写一个函数，使其可以删除某个链表中给定的（非末尾）节点，你将只被给定要求被删除的节点。
示例 1:
输入: head = [4,5,1,9], node = 5
输出: [4,1,9]
解释: 给定你链表中值为 5 的第二个节点，那么在调用了你的函数之后，该链表应变为 4 -&gt; 1 -&gt; 9.
示例 2:
输入: head = [4,5,1,9], node = 1
输...]]></description><category></category></item><item><title><![CDATA[判断链表是否有环]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/103434452</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/103434452</guid><author>lyjSmile</author><pubDate>Sat, 07 Dec 2019 13:04:30 +0800</pubDate><description><![CDATA[1.解题思路
判断一个链表是否存在环行结构，一般看这个题目就会想到暴力解法，从头遍历到尾，看头是否与尾相等。但面试官肯定不会想要这种答案的。这种暴力解法也是存在bug的，如果链表尾部是和链表中间某个元素形成环，这种暴力解法就判断不了了。所以的有更好解法，
2.解法：警察抓小偷，警察走两步，小偷走一步，如果链表是环型结构，警察就一定会抓到小偷。定义两个Node一个取next ,一个取next.nex...]]></description><category></category></item><item><title><![CDATA[合并两个有序链表]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/103413520</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/103413520</guid><author>lyjSmile</author><pubDate>Thu, 05 Dec 2019 22:18:15 +0800</pubDate><description><![CDATA[将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例：
输入：1-&gt;2-&gt;4, 1-&gt;3-&gt;4
输出：1-&gt;1-&gt;2-&gt;3-&gt;4-&gt;4
实现：
这里我们用递归去实现
如果 l1 或者 l2 一开始就是 null ，那么没有任何操作需要合并，所以我们只需要返回非空链表。否则，我们要判断 l1 和 l2...]]></description><category></category></item><item><title><![CDATA[实现retrofit Post缓存拦截器]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/88980715</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/88980715</guid><author>lyjSmile</author><pubDate>Tue, 02 Apr 2019 20:39:49 +0800</pubDate><description><![CDATA[—我是华丽的分割线-------
昨晚合代码合太晚了 耽误了，今天继续。
今天就聊聊retrofit 中使用自定义的缓存拦截器来实现POST的缓存策略吧。
带着这几个疑问吧：
1.retrofit 不是可以直接使用缓存拦截器吗？为什么还要自定义呢。
2.拦截器有什么作用呢，这个自定义的缓存拦截器实现什么功能呢。
解答：
1.retrofit内部使用的是okHttpClient，它内部只支持GET缓...]]></description><category></category></item><item><title><![CDATA[retrofit okHttp拦截器执行顺序]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/88844685</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/88844685</guid><author>lyjSmile</author><pubDate>Wed, 27 Mar 2019 14:49:49 +0800</pubDate><description><![CDATA[配置retrofit的时候为OkHttpClient通过addInterceptor()配置拦截器
拦截器的执行顺序是根据添加顺序来执行，谁先添加，先执行哪个拦截器
.addInterceptor(new BaseInterceptor())
.addInterceptor(new EncryptInterceptor())
.addInterceptor(new HttpCacheInterce...]]></description><category></category></item><item><title><![CDATA[动态注册监听网络状态改变广播，首次注册就接受到广播]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/88553433</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/88553433</guid><author>lyjSmile</author><pubDate>Thu, 14 Mar 2019 15:13:46 +0800</pubDate><description><![CDATA[今天遇到一个很奇怪的现象，记录一下~~
我动态注册了一个网络状态改变的广播，然后注册完就接受到网络状态改变的广播，而我的手机实际上是没有网络状态变化的。
 private val mNetWorkChangeReceiver = NetWorkChangeReceiver()

 override fun onCreate(savedInstanceState: Bundle?) {
      ...]]></description><category></category></item><item><title><![CDATA[android ZxingCode根据Url 生成二维码]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/87802406</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/87802406</guid><author>lyjSmile</author><pubDate>Wed, 20 Feb 2019 16:01:01 +0800</pubDate><description><![CDATA[生成二维码
ZXingUtils.java
package com.hp.supermath.utils;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.gra...]]></description><category></category></item><item><title><![CDATA[android名企面试题总结及解析]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/87100207</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/87100207</guid><author>lyjSmile</author><pubDate>Tue, 12 Feb 2019 17:15:34 +0800</pubDate><description><![CDATA[1.下面异常是属于Runtime Exception 的是(abcd)(多选)
A、ArithmeticException　　 B、IllegalArgumentException　　
C、NullPointerException　　 D、BufferUnderflowException
解析： Java提供了两类主要的异常:runtime exception和checked exception。...]]></description><category></category></item><item><title><![CDATA[android 一张图片实现 ImageView   实现 点击效果  图片明度变化]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/86096102</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/86096102</guid><author>lyjSmile</author><pubDate>Tue, 08 Jan 2019 20:17:23 +0800</pubDate><description><![CDATA[一般实现点击效果我们都是使用drawable下的selector来实现，这样UI会给我们两张图，一张normal的，一张press的，我们实现起来很简单。但这样增加了我们编译出来的Apk体积，一张图可以实现的效果，用两张图。UI在做按下效果图的时候其实也是对原图上进行明度，透明度等变化，我们自己程序内部其实就可以对原图在按下的时候进行处理做到。
我们自定义一个ReplaceSelectorImag...]]></description><category></category></item><item><title><![CDATA[kotlin  线程管理工具类  ThreadPoolManager]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/85698557</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/85698557</guid><author>lyjSmile</author><pubDate>Thu, 03 Jan 2019 15:27:19 +0800</pubDate><description><![CDATA[线程工具类

/**
 * Created  on 2019/1/3
 * @author lyj
 * Function
 */
class ThreadPoolManager {

    companion object {
        @Volatile
        private var mLongPool: ThreadPoolProxy? = null
        pri...]]></description><category></category></item><item><title><![CDATA[android 设置全屏，导航栏透明]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/85303179</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/85303179</guid><author>lyjSmile</author><pubDate>Thu, 27 Dec 2018 20:04:54 +0800</pubDate><description><![CDATA[在onCreate（）中
setContentView之后
if (Build.VERSION.SDK_INT &amp;gt;= 21) {
            val decorView = window.decorView
            val option = (View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                  ...]]></description><category></category></item><item><title><![CDATA[新建GIt仓库，关联服务器地址。]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/85161274</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/85161274</guid><author>lyjSmile</author><pubDate>Fri, 21 Dec 2018 14:14:17 +0800</pubDate><description><![CDATA[1.设置用户名和邮箱
git config --global user.email &quot;you@example.com&quot;
git config --global user.name “Your Name”
查看用户名和邮箱
git config  user.name
git config  user.email
-------------------------------git中一些选项解释---...]]></description><category></category></item><item><title><![CDATA[关于room的那些事]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/84989621</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/84989621</guid><author>lyjSmile</author><pubDate>Thu, 13 Dec 2018 15:38:02 +0800</pubDate><description><![CDATA[Room是一个数据持久化库，它是 Architecture Component的一部分。封装了sqlite。它让SQLiteDatabase的使用变得简单，大大减少了重复的代码，并且把SQL查询的检查放在了编译时。
先介绍下基本的使用吧
1. 添加依赖
dependencies{
 //roomData
    implementation &quot;androidx.room:room-runtime:...]]></description><category></category></item><item><title><![CDATA[setResult(int resultCode, Intent data)与finish的关系]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/84825018</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/84825018</guid><author>lyjSmile</author><pubDate>Wed, 05 Dec 2018 11:18:18 +0800</pubDate><description><![CDATA[记录下坑
setResult(int resultCode, Intent data)方法需要在finish之前调用。在onActivityResult方法才能接受到resultCode。
如果在finish中调用setResult(int resultCode, Intent data)就需要在 super.finish()之前调用。

...]]></description><category></category></item><item><title><![CDATA[View的setTag（）和setTag(int key, final Object tag)]]></title><link>https://blog.youkuaiyun.com/lyjSmile/article/details/84303714</link><guid>https://blog.youkuaiyun.com/lyjSmile/article/details/84303714</guid><author>lyjSmile</author><pubDate>Tue, 20 Nov 2018 15:36:24 +0800</pubDate><description><![CDATA[今天使用Glid加载图片，使用了View的setTag(int key, final Object tag) 方法，然后给我抛了异常
“The key must be an application-specific resource id”
看了下源码
 public void setTag(int key, final Object tag) {
        // If the packag...]]></description><category></category></item></channel></rss>