- 博客(27)
- 收藏
- 关注
原创 OkHttp原理
责任链,顾名思义,就是用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会(条件匹配)处理请求事务,如果某个节点处理完了就可以根据实际业务需求传递给下一个节点继续处理或者返回处理完毕。ConnectInterceptor,连接拦截器,内部会维护一个连接池,负责连接复用、创建连接(三次握手等等)、释放连接以及创建连接上的socket流。加入到链接池的连接开启计时,当连接数大于五或计时大于五分钟则移除空闲时间最长的连接,剩下的重新计时五分钟等待下一轮清除。3. OKHttp空闲连接如何清除?
2023-05-09 10:31:27
526
原创 android AppCompatSeekBar属性及其使用详情
android AppCompatSeekBarandroid:thunbOffset="xx" 拖动图标的拖动值,可以解决由于透明拖动图标导致的进度值溢出android:splitTrack="false" 是否设置一个间隙,让滑块与底部图片分隔 //感觉没什么用
2022-08-05 13:41:40
3435
原创 常用git命令
gitstashpop命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令gitstashpopstash@{$num},比如应用并删除第二个gitstashpopstash@{1}gitstashsave“savemessage”执行存储时,添加备注,方便查找,只有gitstash也要可以的,但查找时不方便识别。...
2022-07-26 15:02:15
182
原创 Android 网络通信WebSocket使用详解
WebSocket的详细使用步骤,2022年6月写的。客户端服务端都是在android上实现的。
2022-07-04 17:57:53
14706
5
原创 Android科大讯飞TTS语音合成实例详细步骤
网站:离线语音合成 - 语音合成 - 讯飞开放平台完成注册后获取到右侧红线上的APPID,!!有重要作用,点击下载获取你需要的SDK版本下载并解压后如图sample:是官网给予的dome;libs文件中的文件拷贝到Android项目中的lib包中并ADD;assets文件拷贝到Main包中;由于我选择的是离线(高质量版)所以将res文件夹中的xtts文件夹拷贝到Android项目中的assets包里; 清单文件中加入权限首先启动的程序中需要添加以下代码用于初始化其中xxxx使用你的APPID替换
2022-06-16 15:24:43
6905
原创 时间的表示方法,TextView显示html文字和图片
TextView显示htm图片 private Spanned sp; new Thread(new Runnable() { @Ove...
2022-04-24 16:22:45
293
原创 UI修改心得
使字体进一步变粗1.textview.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));使字体进一步变粗2.android:textStyle="bold"使文字之间距离改变1.android:letterSpacing="x"x = 0.1 距离变大x = -0.1 距离变小
2022-04-13 17:12:35
1144
原创 android流式布局的写法
package com.carryme.app.widget;import android.content.Context;import android.graphics.Rect;import android.util.AttributeSet;import android.view.View;import android.view.ViewGroup;import java.util.HashMap;import java.util.Map;/** * 流式布局 */pub.
2022-04-11 11:07:07
647
原创 JetPack的学习
ViewModel(类似一个Bean,相当于远程给控件赋值不需要保存)单独使用时只需要创建ViewModel类,不需要进行XML界面的绑定LiveData(能够监听数据,改变数据自动改变数据所在控件的值)在其重写的OnChange()中对控件进行实时更新DataBinding +ViewModel+LiveData(命名方式是XML文件去掉下划线+Binding)1.更改配置dataBinding { enabled = true}2.布局文件加Layout标签和
2022-03-21 17:04:46
2292
原创 Android Room 的使用(使用room实现增删改查)
封装了SQlite第一步:创建数据库表类package com.example.room;import androidx.room.ColumnInfo;import androidx.room.Entity;import androidx.room.PrimaryKey;@Entity//一张表public class Student { //主键,自增长 @PrimaryKey(autoGenerate = true) private int id;
2022-02-22 17:16:14
9082
1
原创 Fragment用法
创建Fragment的java文件和xml文件import android.os.Bundle;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.fragment.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGrou
2022-02-21 13:31:21
1588
原创 Android EventBus使用方法
类似bean类,可以用来区别接受者public class MessageEvent { private String message; public MessageEvent(String message) { this.message = message; } public String getMessage() { return message; } public void setMessage(Strin
2022-02-21 11:03:36
785
原创 自定义异常类及使用方法
定义异常类模板//编译时异常继承Exception(多数情况),运行时异常继承RuntimeExceptionpublic class MyException extends Exception{ public MyException(){} public MyException(String s){ super(s); }}在使用时抛出//在使用时要将异常抛出public class Text { public void doExc
2022-02-18 17:49:20
776
原创 广播:通过广播启动另一个应用
通过A应用启动B应用A应用中通过Intent发送广播 Intent intent = new Intent("B"); sendBroadcast(intent);B应用中创建广播接收者类,并在其中写接受到广播后的逻辑public class MyReceiver extends BroadcastReceiver { @Override //接受到广播后执行的方法:接受到广播后启动应用 public void onReceive(Context con
2022-02-18 16:00:02
1996
原创 Android 网络编程的两种实现(GET)
HttpUrlConnectionpackage com.example.myhttp;import androidx.appcompat.app.AppCompatActivity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.view.View;import android.widget.Button;impo
2022-02-16 17:17:25
657
原创 创建数据库并使用
1.创建数据库类继承SQLiteOpenHelper,在重写的onCreate()方法中调用db.execSQL(CREATE_BOOK)sql语句创建数据库,名称为Book。public class MyDatabaseHelper extends SQLiteOpenHelper { public static final String CREATE_BOOK = "create table Book (" + "phone integer primary key.
2022-01-28 17:54:45
582
原创 ViewPager + View启动页
1.建立viewpager适配器public class MyAdapter extends PagerAdapter { private List<View> mListView; public MyAdapter(List<View> mListView) { this.mListView = mListView; } @NonNull @Override public Object instantia
2022-01-28 14:15:29
401
原创 Android发送通知和自定义Dialog
btn1:发送一个通知btn3:自定义对话框public class ActivityNotifi extends AppCompatActivity implements View.OnClickListener { Button btn1, btn3; String CHANNEL_ID = "ChannelID"; int notificationId = 1; @Override protected void onCreate(Bundle sav
2022-01-28 13:47:21
332
原创 Android RecycleView用法及方法传参用法
1.创建适配器。可以根据自己的需要创建构造方法public class MyRecycleAdapter extends RecyclerView.Adapter<MyRecycleAdapter.MyHolder>{ private Context mcontext; private OnItemClickListener monItemClickListener; private OnItemLongListener monItemLongListener;
2022-01-28 13:23:06
385
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人