<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LH_sunshine的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LH_sunshine</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LH_sunshine]]></copyright><item><title><![CDATA[Android 刷新框架SmartRefreshLayout]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102955037</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102955037</guid><author>LH_sunshine</author><pubDate>Thu, 07 Nov 2019 14:53:06 +0800</pubDate><description><![CDATA[Android 刷新框架SmartRefreshLayout
本文链接：https://blog.youkuaiyun.com/GaoYue3321/article/details/102862977

]]></description><category></category></item><item><title><![CDATA[线程池]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102864452</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102864452</guid><author>LH_sunshine</author><pubDate>Fri, 01 Nov 2019 20:49:36 +0800</pubDate><description><![CDATA[一、线程池的优点
1、重用线程池中的线程，避免因为线程的创建和销毁所带来的性能开销。
2、能有效控制线程池的最大并发数，避免大量的线程之间因互相抢占系统资源而导致的阻塞现象。
3、能够对线程进行简单的管理，并提供定时执行以及指定间隔循环执行等功能。
二、ThreadPoolExecutor
ThreadPoolExecutor是线程池的实现，它的构造方法提供了一系列参数来配置线程池，如下：
pub...]]></description><category></category></item><item><title><![CDATA[android问题]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102844753</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102844753</guid><author>LH_sunshine</author><pubDate>Thu, 31 Oct 2019 20:07:50 +0800</pubDate><description><![CDATA[Svn、Git
问：项目里用的SVN还是Git?
答：svn/git
问：代码冲突了怎么办
答：改，在AS把冲突的部分解决了再上传，如果没用AS还不是用的SVN，git冲突会包留在文件中，两个部分被===========================分割开，去修改整合就OK了。
问：怎么创建分支
答：
1、SVN的话直接右键选择Team然后选择创建。合并分支，和切换分支直接右键Team选择
2、...]]></description><category></category></item><item><title><![CDATA[优化冒泡]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102788336</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102788336</guid><author>LH_sunshine</author><pubDate>Mon, 28 Oct 2019 20:38:27 +0800</pubDate><description><![CDATA[优化冒泡
package com.example.mylesson;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import java.util.Arrays;
public class MainActivity extends...]]></description><category></category></item><item><title><![CDATA[Activity中的一些常识]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102749794</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102749794</guid><author>LH_sunshine</author><pubDate>Fri, 25 Oct 2019 20:53:13 +0800</pubDate><description><![CDATA[1.Activity
问：Activity异常退出了怎么办(怎么保存数据)？
答：
1、重写onSaveInstanceState和onRestoreInstanceState 两个方法
2、在onSaveInstanceState 用Bundle参数putString
3、在onRestoreInstanceState 用Bundle参数getString OK
问：Activity是如何显示视...]]></description><category></category></item><item><title><![CDATA[一些第三方依赖以及一些字段]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102731879</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102731879</guid><author>LH_sunshine</author><pubDate>Thu, 24 Oct 2019 20:53:53 +0800</pubDate><description><![CDATA[Android、Kotlin 开发中用到的第三方依赖
高德
导依赖：
implementation ‘com.amap.api:map2d:latest.integration’
implementation ‘com.amap.api:location:latest.integration’
eventbus：
implementation ‘org.greenrobot:eventbus:3....]]></description><category></category></item><item><title><![CDATA[DBUtils 的增删改查]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102696014</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102696014</guid><author>LH_sunshine</author><pubDate>Wed, 23 Oct 2019 10:03:04 +0800</pubDate><description><![CDATA[Xutils_DBUtils 的增删改查
依赖：implementation ‘org.xutils:xutils:3.5.1’
初始化：
public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        x.Ex...]]></description><category></category></item><item><title><![CDATA[Retrofit解析最外层是数组的JSON串]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102688684</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102688684</guid><author>LH_sunshine</author><pubDate>Tue, 22 Oct 2019 19:12:23 +0800</pubDate><description><![CDATA[Retrofit 解析最外层是数组的JSON 串
json串：http://api.yunzhancn.cn/api/app.interface.php?siteid=78703&amp;itemid=2&amp;act=ad_app
实体类：
package com.example.monthlesson.Modle.Bean;
public class BannerBean {

    /*...]]></description><category></category></item><item><title><![CDATA[Retrofit的使用和封装]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102671960</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102671960</guid><author>LH_sunshine</author><pubDate>Mon, 21 Oct 2019 21:03:08 +0800</pubDate><description><![CDATA[Retrofit接口的封装
GET
//    http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&amp;limit=20&amp;page=1

    //@Get 请求后面的声明   拼接到我们的baseurl上 之后就会获取一个完整路径
    @GET("ios/cf/{path}")

    //必须传的用@Path（），...]]></description><category></category></item><item><title><![CDATA[Android MVP 加 RXjava]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102631789</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102631789</guid><author>LH_sunshine</author><pubDate>Fri, 18 Oct 2019 20:45:19 +0800</pubDate><description><![CDATA[MVP使用
Modle 层：
实体类
public class DataModule {

    List data = new ArrayList();

     ModuleInterface mCallback;

    public DataModule(ModuleInterface moduleInterface){
        this.mCallback = module...]]></description><category></category></item><item><title><![CDATA[点击加减]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102615021</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102615021</guid><author>LH_sunshine</author><pubDate>Thu, 17 Oct 2019 20:58:52 +0800</pubDate><description><![CDATA[设置加减
package com.example.mytakeout.ui.Adapter

import android.content.Context
import android.support.v7.widget.RecyclerView
import android.util.Log
import android.view.LayoutInflater
import android.vi...]]></description><category></category></item><item><title><![CDATA[KotLin ORM数据库]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102594199</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102594199</guid><author>LH_sunshine</author><pubDate>Wed, 16 Oct 2019 20:36:30 +0800</pubDate><description><![CDATA[KotLin ORM 数据库
数据库实体类
@DatabaseTable(tableName = "t_menu") class MenuDb {


    @DatabaseField(generatedId = true) val id:Int = 0

    @DatabaseField(columnName = "menuname") var menuname:String ?= nu...]]></description><category></category></item><item><title><![CDATA[KotLIn RecycLerView]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102574872</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102574872</guid><author>LH_sunshine</author><pubDate>Tue, 15 Oct 2019 20:57:35 +0800</pubDate><description><![CDATA[kntLin——RecyclerView  的适配器
class MeauAdapter(val context:Context) : RecyclerView.Adapter&lt;MeauAdapter.MyHolder&gt;() {

    var list:ArrayList&lt;MenuBean&gt; = ArrayList()

    var menuOnClickliste...]]></description><category></category></item><item><title><![CDATA[Kotlin网络封装]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102556684</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102556684</guid><author>LH_sunshine</author><pubDate>Mon, 14 Oct 2019 21:00:22 +0800</pubDate><description><![CDATA[Kotlin网络获取数据封装
class TakeoutApp : MobApplication() {

    companion object{
        var sUser:User = User()
    }

    override fun onCreate() {
        super.onCreate()
        sUser.id = -1
    }
}
...]]></description><category></category></item><item><title><![CDATA[KotLin数据库]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102510098</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102510098</guid><author>LH_sunshine</author><pubDate>Fri, 11 Oct 2019 20:57:41 +0800</pubDate><description><![CDATA[KotLin数据存储到数据库
解析数据 添加到数据库实体类
class LoginActivityPresenter(val loginActivity: LoginActivity) : NetPresenter(){
    override fun parserJson(json: String?) {
        val user = Gson().fromJson(json, Use...]]></description><category></category></item><item><title><![CDATA[Kotlin短信验证]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102490891</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102490891</guid><author>LH_sunshine</author><pubDate>Thu, 10 Oct 2019 21:07:26 +0800</pubDate><description><![CDATA[验证码判断
fun onLoginSuccess() {
finish()
Log.e("####",“登录成功”)
}
fun onLoginFailed() {
    Log.e("####","登录失败")
}

val eh = object : EventHandler() {
    override fun afterEvent(event: Int, result: Int, d...]]></description><category></category></item><item><title><![CDATA[Kotlin短信验证]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/102469977</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/102469977</guid><author>LH_sunshine</author><pubDate>Wed, 09 Oct 2019 21:06:26 +0800</pubDate><description><![CDATA[短信验证
// An highlighted block
val handler : Handler = object : Handler(){
override fun handleMessage(msg: Message?) {
super.handleMessage(msg)
val toInt = msg!!.arg1.toInt()
login_get.text=toInt.toStri...]]></description><category></category></item><item><title><![CDATA[Android小问题8]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/101935364</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/101935364</guid><author>LH_sunshine</author><pubDate>Wed, 02 Oct 2019 19:44:25 +0800</pubDate><description><![CDATA[Android开发中何时使用多进程？使用多进程的好处是什么？
要想知道如何使用多进程，先要知道Android里的多进程概念。一般情况下，一个应用程序就是一个进程，这个进程名称就是应用程序包名。我们知道进程是系统分配资源和调度的基本单位，所以每个进程都有自己独立的资源和内存空间，别的进程是不能任意访问其他进程的内存和资源的。
那如何让自己的应用拥有多个进程？
很简单，我们的四大组件在AndroidM...]]></description><category></category></item><item><title><![CDATA[Android小问题7]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/101935339</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/101935339</guid><author>LH_sunshine</author><pubDate>Wed, 02 Oct 2019 19:43:44 +0800</pubDate><description><![CDATA[Android中touch事件的传递机制是怎样的?
1.Touch事件传递的相关API有dispatchTouchEvent、onTouchEvent、onInterceptTouchEvent
2.Touch事件相关的类有View、ViewGroup、Activity
3.Touch事件会被封装成MotionEvent对象，该对象封装了手势按下、移动、松开等动作
4.Touch事件通常从Acti...]]></description><category></category></item><item><title><![CDATA[Android小问题6]]></title><link>https://blog.youkuaiyun.com/LH_sunshine/article/details/101935272</link><guid>https://blog.youkuaiyun.com/LH_sunshine/article/details/101935272</guid><author>LH_sunshine</author><pubDate>Wed, 02 Oct 2019 19:42:53 +0800</pubDate><description><![CDATA[Android中进程间通信有哪些实现方式？
Intent，Binder（AIDL），Messenger，BroadcastReceiver
介绍下实现一个自定义view的基本流程
1、自定义View的属性 编写attr.xml文件
2、在layout布局文件中引用，同时引用命名空间
3、在View的构造方法中获得我们自定义的属性 ，在自定义控件中进行读取（构造方法拿到attr.xml文件值）
4、...]]></description><category></category></item></channel></rss>