Forráskód Böngészése

加入中间层BaseActivity

liukai 3 éve
szülő
commit
d411e6d04f
33 módosított fájl, 440 hozzáadás és 146 törlés
  1. 0 1
      app/build.gradle
  2. 1 1
      app/src/main/AndroidManifest.xml
  3. 0 29
      app/src/main/java/com/hongyegroup/nucleicacidtest/MainActivity.kt
  4. 2 31
      app/src/main/java/com/hongyegroup/nucleicacidtest/MyApplication.kt
  5. 10 0
      app/src/main/java/com/hongyegroup/nucleicacidtest/router/AppComponentImpl.kt
  6. 35 0
      app/src/main/java/com/hongyegroup/nucleicacidtest/ui/SplashActivity.kt
  7. 0 31
      app/src/main/res/layout/activity_main.xml
  8. 43 0
      app/src/main/res/layout/activity_splash.xml
  9. 0 1
      cpt_auths/build.gradle
  10. 2 2
      cpt_auths/src/main/java/com/hongyegroup/cpt_auths/ui/ChooseAuthActivity.kt
  11. 0 1
      cpt_business/build.gradle
  12. 2 2
      cpt_business/src/main/java/com/hongyegroup/cpt_business/BusinessMainActivity.kt
  13. 0 1
      cpt_pensonal/build.gradle
  14. 2 2
      cpt_pensonal/src/main/java/com/hongyegroup/cpt_pensonal/PensonalMainActivity.kt
  15. 0 1
      cs_baselib/build.gradle
  16. 2 2
      cs_baselib/src/main/java/com/guadou/lib_baselib/base/fragment/AbsFragment.kt
  17. 0 1
      cs_cptServices/build.gradle
  18. 101 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/YYApplication.kt
  19. 32 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/YYLifecycleObserver.kt
  20. 20 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/activity/YYBaseActivity.kt
  21. 22 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/activity/YYBaseVDBActivity.kt
  22. 22 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/activity/YYBaseVDBLoadingActivity.kt
  23. 21 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/activity/YYBaseVMActivity.kt
  24. 21 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/activity/YYBaseVMLoadingActivity.kt
  25. 6 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/fragment/YYBaseFragment.kt
  26. 8 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/fragment/YYBaseVDBFragment.kt
  27. 8 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/fragment/YYBaseVDBLazyLoadingFragment.kt
  28. 8 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/fragment/YYBaseVDBLoadingFragment.kt
  29. 7 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/fragment/YYBaseVMFragment.kt
  30. 7 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/fragment/YYBaseVMLazyLoadingFragment.kt
  31. 7 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/fragment/YYBaseVMLoadingFragment.kt
  32. 19 20
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/ui/GlobalWebActivity.kt
  33. 32 20
      cs_cptServices/src/main/res/layout/activity_global_web.xml

+ 0 - 1
app/build.gradle

@@ -1,6 +1,5 @@
 apply plugin: 'com.android.application'
 apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
 
 apply plugin: 'app-joint'
 

+ 1 - 1
app/src/main/AndroidManifest.xml

@@ -17,7 +17,7 @@
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
 
-        <activity android:name="com.hongyegroup.nucleicacidtest.MainActivity">
+        <activity android:name="com.hongyegroup.nucleicacidtest.ui.SplashActivity">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 

+ 0 - 29
app/src/main/java/com/hongyegroup/nucleicacidtest/MainActivity.kt

@@ -1,29 +0,0 @@
-package com.hongyegroup.nucleicacidtest
-
-import com.guadou.cs_router.YYRouterService
-import com.guadou.lib_baselib.base.activity.BaseVMActivity
-import com.guadou.lib_baselib.base.vm.EmptyViewModel
-import com.guadou.lib_baselib.ext.click
-import kotlinx.android.synthetic.main.activity_main.*
-
-class MainActivity : BaseVMActivity<EmptyViewModel>() {
-
-    override fun getLayoutIdRes(): Int = R.layout.activity_main
-
-    override fun startObserve() {
-
-    }
-
-    override fun init() {
-
-        btn_jump_main.click {
-//            YYRouterService.mainComponentServer?.startChooseRoleActivity()
-
-//            YYRouterService.businessComponentServer?.startBusinessMainActivity()
-
-            YYRouterService.pensonalComponentServer.startPensonalMainActivity()
-        }
-
-
-    }
-}

+ 2 - 31
app/src/main/java/com/hongyegroup/nucleicacidtest/MyApplication.kt

@@ -1,43 +1,14 @@
 package com.hongyegroup.nucleicacidtest
 
-import android.app.ActivityManager
-import android.content.Context
-import android.os.Build
-import android.os.Process
-import android.webkit.WebView
-import com.guadou.lib_baselib.base.BaseApplication
+import com.guadou.cs_cptservices.base.YYApplication
 import dagger.hilt.android.HiltAndroidApp
 
 @HiltAndroidApp
-class MyApplication : BaseApplication() {
+class MyApplication : YYApplication() {
 
     override fun onCreate() {
         super.onCreate()
 
-        //WebView的兼容
-        setupWebView()
-    }
-
-    //兼容Android-P
-    private fun setupWebView() {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
-            val processName = getProcessName(this)
-            if ("com.monstarlab.yyjobs" != processName) {
-                WebView.setDataDirectorySuffix(processName)
-            }
-        }
-    }
-
-    //获取当前的进程名称
-    private fun getProcessName(context: Context?): String? {
-        if (context == null) return ""
-        val manager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
-        for (processInfo in manager.runningAppProcesses) {
-            if (processInfo.pid == Process.myPid()) {
-                return processInfo.processName
-            }
-        }
-        return ""
     }
 
 }

+ 10 - 0
app/src/main/java/com/hongyegroup/nucleicacidtest/router/AppComponentImpl.kt

@@ -0,0 +1,10 @@
+package com.hongyegroup.nucleicacidtest.router
+
+import com.guadou.cs_router.app.IAppComponentServer
+import io.github.prototypez.appjoint.core.ServiceProvider
+
+@ServiceProvider
+class AppComponentImpl : IAppComponentServer {
+
+
+}

+ 35 - 0
app/src/main/java/com/hongyegroup/nucleicacidtest/ui/SplashActivity.kt

@@ -0,0 +1,35 @@
+package com.hongyegroup.nucleicacidtest.ui
+
+import com.guadou.cs_cptservices.base.activity.YYBaseVDBActivity
+import com.guadou.cs_router.YYRouterService
+import com.guadou.lib_baselib.base.vm.EmptyViewModel
+import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.ext.click
+import com.hongyegroup.nucleicacidtest.R
+import com.hongyegroup.nucleicacidtest.databinding.ActivitySplashBinding
+
+
+class SplashActivity : YYBaseVDBActivity<EmptyViewModel, ActivitySplashBinding>() {
+
+
+    override fun getDataBindingConfig(): DataBindingConfig {
+        return DataBindingConfig(R.layout.activity_splash)
+    }
+
+    override fun startObserve() {
+
+    }
+
+    override fun init() {
+
+        mBinding.btnJumpMain.click {
+//            YYRouterService.mainComponentServer?.startChooseRoleActivity()
+
+//            YYRouterService.businessComponentServer?.startBusinessMainActivity()
+
+            YYRouterService.pensonalComponentServer.startPensonalMainActivity()
+        }
+
+
+    }
+}

+ 0 - 31
app/src/main/res/layout/activity_main.xml

@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/white"
-    android:orientation="vertical">
-
-    <com.guadou.lib_baselib.view.titlebar.EasyTitleBar
-        android:id="@+id/easy_title"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        app:Easy_hasStatusPadding="true"
-        app:Easy_title="Main" />
-
-
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_horizontal"
-        android:text="Main Page" />
-
-
-    <Button
-        android:id="@+id/btn_jump_main"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="跳转主页模块" />
-
-</LinearLayout>

+ 43 - 0
app/src/main/res/layout/activity_splash.xml

@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:binding="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="RtlHardcoded">
+
+    <data>
+
+    </data>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/white"
+        android:orientation="vertical">
+
+        <com.guadou.lib_baselib.view.titlebar.EasyTitleBar
+            android:id="@+id/easy_title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:Easy_hasStatusPadding="true"
+            app:Easy_title="Main" />
+
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:text="Main Page" />
+
+
+        <Button
+            android:id="@+id/btn_jump_main"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="跳转主页模块" />
+
+    </LinearLayout>
+
+</layout>
+
+

+ 0 - 1
cpt_auths/build.gradle

@@ -1,6 +1,5 @@
 apply plugin: 'com.android.library'
 apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
 
 apply plugin: 'kotlin-kapt'
 apply plugin: 'dagger.hilt.android.plugin'

+ 2 - 2
cpt_auths/src/main/java/com/hongyegroup/cpt_auths/ui/ChooseAuthActivity.kt

@@ -1,7 +1,7 @@
 package com.hongyegroup.cpt_auths.ui
 
 import android.content.Intent
-import com.guadou.lib_baselib.base.activity.BaseVDBActivity
+import com.guadou.cs_cptservices.base.activity.YYBaseVDBActivity
 import com.guadou.lib_baselib.bean.DataBindingConfig
 import com.guadou.lib_baselib.ext.click
 import com.guadou.lib_baselib.utils.CommUtils
@@ -14,7 +14,7 @@ import dagger.hilt.android.AndroidEntryPoint
 import javax.inject.Inject
 
 @AndroidEntryPoint
-class ChooseAuthActivity : BaseVDBActivity<AuthViewModel, ActivityChooseAuthBinding>() {
+class ChooseAuthActivity : YYBaseVDBActivity<AuthViewModel, ActivityChooseAuthBinding>() {
 
     @Inject
     lateinit var userServer: MemberServer

+ 0 - 1
cpt_business/build.gradle

@@ -1,6 +1,5 @@
 apply plugin: 'com.android.library'
 apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
 
 apply plugin: 'kotlin-kapt'
 apply plugin: 'dagger.hilt.android.plugin'

+ 2 - 2
cpt_business/src/main/java/com/hongyegroup/cpt_business/BusinessMainActivity.kt

@@ -2,13 +2,13 @@ package com.hongyegroup.cpt_business
 
 import android.annotation.SuppressLint
 import android.content.Intent
-import com.guadou.lib_baselib.base.activity.BaseVDBActivity
+import com.guadou.cs_cptservices.base.activity.YYBaseVDBActivity
 import com.guadou.lib_baselib.base.vm.EmptyViewModel
 import com.guadou.lib_baselib.bean.DataBindingConfig
 import com.guadou.lib_baselib.utils.CommUtils
 import com.hongyegroup.cpt_business.databinding.ActivityBusinessMainBinding
 
-class BusinessMainActivity : BaseVDBActivity<EmptyViewModel, ActivityBusinessMainBinding>() {
+class BusinessMainActivity : YYBaseVDBActivity<EmptyViewModel, ActivityBusinessMainBinding>() {
 
     companion object {
         fun startInstance() {

+ 0 - 1
cpt_pensonal/build.gradle

@@ -1,6 +1,5 @@
 apply plugin: 'com.android.library'
 apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
 
 apply plugin: 'kotlin-kapt'
 apply plugin: 'dagger.hilt.android.plugin'

+ 2 - 2
cpt_pensonal/src/main/java/com/hongyegroup/cpt_pensonal/PensonalMainActivity.kt

@@ -2,13 +2,13 @@ package com.hongyegroup.cpt_pensonal
 
 import android.annotation.SuppressLint
 import android.content.Intent
-import com.guadou.lib_baselib.base.activity.BaseVDBActivity
+import com.guadou.cs_cptservices.base.activity.YYBaseVDBActivity
 import com.guadou.lib_baselib.base.vm.EmptyViewModel
 import com.guadou.lib_baselib.bean.DataBindingConfig
 import com.guadou.lib_baselib.utils.CommUtils
 import com.hongyegroup.cpt_pensonal.databinding.ActivityPensonalMainBinding
 
-class PensonalMainActivity : BaseVDBActivity<EmptyViewModel, ActivityPensonalMainBinding>() {
+class PensonalMainActivity : YYBaseVDBActivity<EmptyViewModel, ActivityPensonalMainBinding>() {
 
     companion object {
         fun startInstance() {

+ 0 - 1
cs_baselib/build.gradle

@@ -1,6 +1,5 @@
 apply plugin: 'com.android.library'
 apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
 
 apply plugin: 'kotlin-kapt'
 apply plugin: 'dagger.hilt.android.plugin'

+ 2 - 2
cs_baselib/src/main/java/com/guadou/lib_baselib/base/fragment/AbsFragment.kt

@@ -28,8 +28,8 @@ abstract class AbsFragment : Fragment(), ConnectivityReceiver.ConnectivityReceiv
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        mActivity = activity!!
-        mContext = activity!!.applicationContext
+        mActivity = requireActivity()
+        mContext = requireActivity().applicationContext
 
         if (needRegisterNetworkChangeObserver()) {
             ConnectivityReceiver.registerObserver(this)

+ 0 - 1
cs_cptServices/build.gradle

@@ -1,6 +1,5 @@
 apply plugin: 'com.android.library'
 apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
 
 apply plugin: 'kotlin-kapt'
 apply plugin: 'dagger.hilt.android.plugin'

+ 101 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/YYApplication.kt

@@ -0,0 +1,101 @@
+package com.guadou.cs_cptservices.base
+
+import android.app.ActivityManager
+import android.content.Context
+import android.os.Build
+import android.os.Process
+import android.webkit.WebView
+import com.guadou.lib_baselib.base.BaseApplication
+
+/**
+ * 业务逻辑层的Application
+ */
+open class YYApplication : BaseApplication() {
+
+    companion object {
+
+        var mCurAppVersion = "" //当前App的版本号 用于网络请求全局添加请求头
+
+    }
+
+    override fun onCreate() {
+        super.onCreate()
+
+        //赋值App全局版本号
+        mCurAppVersion = packageManager.getPackageInfo(packageName, 0).versionName
+
+//        initBugly()
+
+        //WebView的兼容
+        setupWebView()
+    }
+
+    //兼容Android-P
+    private fun setupWebView() {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+            val processName = getProcessName(this)
+            if ("com.monstarlab.yyjobs" != processName) {
+                WebView.setDataDirectorySuffix(processName)
+            }
+        }
+    }
+
+    //获取当前的进程名称
+    private fun getProcessName(context: Context?): String? {
+        if (context == null) return ""
+        val manager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
+        for (processInfo in manager.runningAppProcesses) {
+            if (processInfo.pid == Process.myPid()) {
+                return processInfo.processName
+            }
+        }
+        return ""
+    }
+
+//    /**
+//     * 初始化Bugly,捕获到异常信息上传到Bugly平台
+//     */
+//    private fun initBugly() {
+//
+//        CrashReport.initCrashReport(applicationContext, "afcd34c05f", true)
+//        val debug: Boolean = BuildConfig.DEBUG
+//        //能捕获自己的异常,上报给bugly
+//        Cockroach.install(this, object : ExceptionHandler() {
+//            override fun onUncaughtExceptionHappened(thread: Thread, throwable: Throwable) {
+//                YYLogUtils.e("--->onUncaughtExceptionHappened:" + thread + "<--->" + throwable.message)
+//                Handler(Looper.getMainLooper()).post {
+//                    if (debug) {
+//                        //如果是测试环境那么吐司错误信息
+//                        toast(throwable.toString())
+//                    }
+//                    //上报错误信息
+//                    CrashReport.postCatchedException(throwable)
+//                }
+//            }
+//
+//            override fun onBandageExceptionHappened(throwable: Throwable) {
+//                throwable.printStackTrace() //打印警告级别log,该throwable可能是最开始的bug导致的,无需关心
+//                YYLogUtils.e("Cockroach Worked:" + throwable.message)
+//                if (debug) {
+//                    //如果是测试环境那么吐司错误信息
+//                    toast(throwable.toString())
+//                }
+//                //上报错误信息
+//                CrashReport.postCatchedException(throwable)
+//            }
+//
+//            override fun onEnterSafeMode() {
+//                YYLogUtils.e("Cockroach onEnterSafeMode")
+//            }
+//
+//            override fun onMayBeBlackScreen(e: Throwable) {
+//                val thread = Looper.getMainLooper().thread
+//                Log.e("AndroidRuntime", "--->onUncaughtExceptionHappened:$thread<---", e)
+//                //黑屏时建议直接杀死app
+//                ActivityManage.finishAllActivity()
+//                exitProcess(0)
+//            }
+//        })
+//    }
+
+}

+ 32 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/YYLifecycleObserver.kt

@@ -0,0 +1,32 @@
+package com.guadou.cs_cptservices.base
+
+import android.app.Activity
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleObserver
+import androidx.lifecycle.OnLifecycleEvent
+import com.guadou.lib_baselib.view.LoadingDialogManager
+
+
+/**
+ * 全局的生命周期的监听
+ */
+class YYLifecycleObserver(private val activity: Activity) : LifecycleObserver {
+
+    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
+    fun connectOnCreate() {
+    }
+
+    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
+    fun connectOnResume() {
+    }
+
+    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
+    fun connectOnPause() {
+    }
+
+    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
+    fun disConnectOnDestroy() {
+        LoadingDialogManager.get().dismissLoading()
+    }
+
+}

+ 20 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/activity/YYBaseActivity.kt

@@ -0,0 +1,20 @@
+package com.guadou.cs_cptservices.base.activity
+
+import android.os.Bundle
+import com.guadou.cs_cptservices.base.YYLifecycleObserver
+import com.guadou.lib_baselib.base.activity.AbsActivity
+
+abstract class YYBaseActivity : AbsActivity() {
+
+    lateinit var lifecycleObserver: YYLifecycleObserver
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+
+        //注入生命周期回调
+        lifecycleObserver = YYLifecycleObserver(this)
+        lifecycle.addObserver(lifecycleObserver)
+
+        super.onCreate(savedInstanceState)
+    }
+
+}

+ 22 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/activity/YYBaseVDBActivity.kt

@@ -0,0 +1,22 @@
+package com.guadou.cs_cptservices.base.activity
+
+import android.os.Bundle
+import androidx.databinding.ViewDataBinding
+import com.guadou.cs_cptservices.base.YYLifecycleObserver
+import com.guadou.lib_baselib.base.activity.BaseVDBActivity
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+
+abstract class YYBaseVDBActivity<VM : BaseViewModel, VDB : ViewDataBinding> : BaseVDBActivity<VM, VDB>() {
+
+    lateinit var lifecycleObserver: YYLifecycleObserver
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+
+        //注入生命周期回调
+        lifecycleObserver = YYLifecycleObserver(this)
+        lifecycle.addObserver(lifecycleObserver)
+
+        super.onCreate(savedInstanceState)
+    }
+
+}

+ 22 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/activity/YYBaseVDBLoadingActivity.kt

@@ -0,0 +1,22 @@
+package com.guadou.cs_cptservices.base.activity
+
+import android.os.Bundle
+import androidx.databinding.ViewDataBinding
+import com.guadou.cs_cptservices.base.YYLifecycleObserver
+import com.guadou.lib_baselib.base.activity.BaseVDBLoadingActivity
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+
+abstract class YYBaseVDBLoadingActivity<VM : BaseViewModel, VDB : ViewDataBinding> : BaseVDBLoadingActivity<VM, VDB>() {
+
+    lateinit var lifecycleObserver: YYLifecycleObserver
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+
+        //注入生命周期回调
+        lifecycleObserver = YYLifecycleObserver(this)
+        lifecycle.addObserver(lifecycleObserver)
+
+        super.onCreate(savedInstanceState)
+    }
+
+}

+ 21 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/activity/YYBaseVMActivity.kt

@@ -0,0 +1,21 @@
+package com.guadou.cs_cptservices.base.activity
+
+import android.os.Bundle
+import com.guadou.cs_cptservices.base.YYLifecycleObserver
+import com.guadou.lib_baselib.base.activity.BaseVMActivity
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+
+abstract class YYBaseVMActivity<VM : BaseViewModel> : BaseVMActivity<VM>() {
+
+    lateinit var lifecycleObserver: YYLifecycleObserver
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+
+        //注入生命周期回调
+        lifecycleObserver = YYLifecycleObserver(this)
+        lifecycle.addObserver(lifecycleObserver)
+
+        super.onCreate(savedInstanceState)
+    }
+
+}

+ 21 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/activity/YYBaseVMLoadingActivity.kt

@@ -0,0 +1,21 @@
+package com.guadou.cs_cptservices.base.activity
+
+import android.os.Bundle
+import com.guadou.cs_cptservices.base.YYLifecycleObserver
+import com.guadou.lib_baselib.base.activity.BaseVMLoadingActivity
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+
+abstract class YYBaseVMLoadingActivity<VM : BaseViewModel> : BaseVMLoadingActivity<VM>() {
+
+    lateinit var lifecycleObserver: YYLifecycleObserver
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+
+        //注入生命周期回调
+        lifecycleObserver = YYLifecycleObserver(this)
+        lifecycle.addObserver(lifecycleObserver)
+
+        super.onCreate(savedInstanceState)
+    }
+
+}

+ 6 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/fragment/YYBaseFragment.kt

@@ -0,0 +1,6 @@
+package com.guadou.cs_cptservices.base.fragment
+
+import com.guadou.lib_baselib.base.fragment.AbsFragment
+
+abstract class YYBaseFragment : AbsFragment() {
+}

+ 8 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/fragment/YYBaseVDBFragment.kt

@@ -0,0 +1,8 @@
+package com.guadou.cs_cptservices.base.fragment
+
+import androidx.databinding.ViewDataBinding
+import com.guadou.lib_baselib.base.fragment.BaseVDBFragment
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+
+abstract class YYBaseVDBFragment<VM : BaseViewModel, VDB : ViewDataBinding> : BaseVDBFragment<VM, VDB>() {
+}

+ 8 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/fragment/YYBaseVDBLazyLoadingFragment.kt

@@ -0,0 +1,8 @@
+package com.guadou.cs_cptservices.base.fragment
+
+import androidx.databinding.ViewDataBinding
+import com.guadou.lib_baselib.base.fragment.BaseVDBLazyLoadingFragment
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+
+abstract class YYBaseVDBLazyLoadingFragment<VM : BaseViewModel, VDB : ViewDataBinding> : BaseVDBLazyLoadingFragment<VM, VDB>() {
+}

+ 8 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/fragment/YYBaseVDBLoadingFragment.kt

@@ -0,0 +1,8 @@
+package com.guadou.cs_cptservices.base.fragment
+
+import androidx.databinding.ViewDataBinding
+import com.guadou.lib_baselib.base.fragment.BaseVDBLoadingFragment
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+
+abstract class YYBaseVDBLoadingFragment<VM : BaseViewModel, VDB : ViewDataBinding> : BaseVDBLoadingFragment<VM, VDB>() {
+}

+ 7 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/fragment/YYBaseVMFragment.kt

@@ -0,0 +1,7 @@
+package com.guadou.cs_cptservices.base.fragment
+
+import com.guadou.lib_baselib.base.fragment.BaseVMFragment
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+
+abstract class YYBaseVMFragment<VM : BaseViewModel> : BaseVMFragment<VM>() {
+}

+ 7 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/fragment/YYBaseVMLazyLoadingFragment.kt

@@ -0,0 +1,7 @@
+package com.guadou.cs_cptservices.base.fragment
+
+import com.guadou.lib_baselib.base.fragment.BaseVMLazyLoadingFragment
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+
+abstract class YYBaseVMLazyLoadingFragment<VM : BaseViewModel> : BaseVMLazyLoadingFragment<VM>() {
+}

+ 7 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/base/fragment/YYBaseVMLoadingFragment.kt

@@ -0,0 +1,7 @@
+package com.guadou.cs_cptservices.base.fragment
+
+import com.guadou.lib_baselib.base.fragment.BaseVMLoadingFragment
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+
+abstract class YYBaseVMLoadingFragment<VM : BaseViewModel> : BaseVMLoadingFragment<VM>() {
+}

+ 19 - 20
cs_cptServices/src/main/java/com/guadou/cs_cptservices/ui/GlobalWebActivity.kt

@@ -8,15 +8,16 @@ import android.view.View
 import android.view.ViewGroup
 import android.widget.FrameLayout
 import com.guadou.cs_cptservices.R
-import com.guadou.lib_baselib.base.activity.BaseVMActivity
-import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.guadou.cs_cptservices.base.activity.YYBaseVDBActivity
+import com.guadou.cs_cptservices.databinding.ActivityGlobalWebBinding
+import com.guadou.lib_baselib.base.vm.EmptyViewModel
+import com.guadou.lib_baselib.bean.DataBindingConfig
 import com.guadou.lib_baselib.ext.toast
 import com.guadou.lib_baselib.utils.CheckUtil
 import com.guadou.lib_baselib.utils.CommUtils
 import com.guadou.lib_baselib.view.MyWebView
-import kotlinx.android.synthetic.main.activity_global_web.*
 
-class GlobalWebActivity : BaseVMActivity<BaseViewModel>() {
+class GlobalWebActivity : YYBaseVDBActivity<EmptyViewModel, ActivityGlobalWebBinding>() {
 
     private var mWebtitle: String? = null
     private var mWeburl: String? = null
@@ -34,16 +35,16 @@ class GlobalWebActivity : BaseVMActivity<BaseViewModel>() {
         }
     }
 
+    override fun getDataBindingConfig(): DataBindingConfig {
+        return DataBindingConfig(R.layout.activity_global_web)
+    }
+
     override fun getDataFromIntent(intent: Intent) {
         super.getDataFromIntent(intent)
         mWebtitle = intent.getStringExtra("webTitle")
         mWeburl = intent.getStringExtra("webUrl")
     }
 
-    override fun getLayoutIdRes(): Int {
-        return R.layout.activity_global_web
-    }
-
     override fun startObserve() {
     }
 
@@ -54,7 +55,7 @@ class GlobalWebActivity : BaseVMActivity<BaseViewModel>() {
 
     private fun initTitles() {
         if (!CheckUtil.isEmpty(mWebtitle)) {
-            easy_title.title = mWebtitle
+            mBinding.easyTitle.title = mWebtitle
         }
     }
 
@@ -70,25 +71,25 @@ class GlobalWebActivity : BaseVMActivity<BaseViewModel>() {
         mWebView!!.setOnWebChangeListener(object : MyWebView.OnWebChangeListener {
             override fun titleChange(title: String) {
                 if (CheckUtil.isEmpty(mWebtitle)) {
-                    easy_title.title = title
+                    mBinding.easyTitle.title = title
                 }
             }
 
             override fun progressChange(progress: Int) {
                 var newProgress = progress
                 if (newProgress == 100) {
-                    pb_web_view.setProgress(100)
+                    mBinding.pbWebView.setProgress(100)
                     CommUtils.getHandler()
-                        .postDelayed({ pb_web_view.visibility = View.GONE }, 200)//0.2秒后隐藏进度条
-                } else if (pb_web_view.visibility == View.GONE) {
-                    pb_web_view.visibility = View.VISIBLE
+                        .postDelayed({ mBinding.pbWebView.visibility = View.GONE }, 200)//0.2秒后隐藏进度条
+                } else if (mBinding.pbWebView.visibility == View.GONE) {
+                    mBinding.pbWebView.visibility = View.VISIBLE
                 }
                 //设置初始进度10,这样会显得效果真一点,总不能从1开始吧
                 if (newProgress < 10) {
                     newProgress = 10
                 }
                 //不断更新进度
-                pb_web_view.setProgress(newProgress)
+                mBinding.pbWebView.setProgress(newProgress)
             }
 
             override fun onInnerLinkChecked() {
@@ -103,7 +104,7 @@ class GlobalWebActivity : BaseVMActivity<BaseViewModel>() {
         if (!TextUtils.isEmpty(mWeburl))
             mWebView!!.loadUrl(mWeburl)
 
-        fl_content.addView(mWebView)
+        mBinding.flContent.addView(mWebView)
 
     }
 
@@ -139,7 +140,7 @@ class GlobalWebActivity : BaseVMActivity<BaseViewModel>() {
             mWebView!!.clearCache(true) //清空缓存
             if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
 
-                fl_content.removeView(mWebView)
+                mBinding.flContent.removeView(mWebView)
 
                 mWebView?.removeAllViews()
                 mWebView?.destroy()
@@ -147,14 +148,12 @@ class GlobalWebActivity : BaseVMActivity<BaseViewModel>() {
                 mWebView?.removeAllViews()
                 mWebView?.destroy()
 
-                fl_content.removeView(mWebView)
+                mBinding.flContent.removeView(mWebView)
 
             }
             mWebView = null
         }
 
-        //退出当前web进程
-        //        System.exit(0);
     }
 
 

+ 32 - 20
cs_cptServices/src/main/res/layout/activity_global_web.xml

@@ -1,29 +1,41 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:background="@color/white"
-    android:orientation="vertical">
+    xmlns:binding="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="RtlHardcoded">
 
-    <com.guadou.lib_baselib.view.titlebar.EasyTitleBar
-        android:id="@+id/easy_title"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        app:Easy_title="Title" />
+    <data>
+
+    </data>
 
-    <com.guadou.lib_baselib.view.WebViewProgressBar
-        android:id="@+id/pb_web_view"
+    <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="@dimen/d_1dp"
-        android:visibility="gone"/>
+        android:layout_height="match_parent"
+        android:background="@color/white"
+        android:orientation="vertical">
 
+        <com.guadou.lib_baselib.view.titlebar.EasyTitleBar
+            android:id="@+id/easy_title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:Easy_title="Title" />
 
-    <FrameLayout
-        android:id="@+id/fl_content"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        <com.guadou.lib_baselib.view.WebViewProgressBar
+            android:id="@+id/pb_web_view"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/d_1dp"
+            android:visibility="gone"/>
+
+
+        <FrameLayout
+            android:id="@+id/fl_content"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+
+        </FrameLayout>
+
+    </LinearLayout>
 
-    </FrameLayout>
+</layout>
 
-</LinearLayout>