feat(activity): 新增 InitActivity 初始化页面,实现网络检测和倒计时功能

This commit is contained in:
2026-03-13 17:36:46 +08:00
parent 75306af483
commit 4b241ba81b
9 changed files with 362 additions and 21 deletions
@@ -3,6 +3,7 @@ package com.sw.inbound.activity
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.view.KeyEvent
import androidx.activity.viewModels
import com.sw.inbound.base.BaseActivity
import androidx.lifecycle.Lifecycle
@@ -16,6 +17,7 @@ import com.sw.inbound.utils.DateTimeUtils
import com.sw.inbound.utils.ThreadUtils
import com.sw.inbound.utils.ext.gone
import com.sw.inbound.utils.ext.startActivity
import com.sw.inbound.utils.ext.toast
import com.sw.inbound.utils.ext.visible
import com.sw.inbound.viewmodel.UserViewModel
import dagger.hilt.android.AndroidEntryPoint
@@ -45,6 +47,10 @@ class HomeActivity : BaseActivity() {
}
}
/** 用于检测双击返回键的时间戳 */
private var lastBackPressTime = 0L
private val backPressInterval = 2000L // 2 秒内连续按下返回键视为双击
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityHomeBinding.inflate(layoutInflater)
@@ -133,4 +139,27 @@ class HomeActivity : BaseActivity() {
// 页面不可见时停止刷新,避免内存泄漏
handler.removeCallbacks(timeRunnable)
}
/**
* 处理返回键事件
* 双击返回键退出应用,单击返回键提示再次点击退出
*/
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
return if (keyCode == KeyEvent.KEYCODE_BACK) {
val currentTime = System.currentTimeMillis()
if (currentTime - lastBackPressTime < backPressInterval) {
// 双击返回键,退出应用
finish()
true
} else {
// 单击返回键,显示提示
lastBackPressTime = currentTime
this.toast("再按一次返回键退出应用")
true
}
} else {
super.onKeyDown(keyCode, event)
}
}
}