feat(activity): 新增 InitActivity 初始化页面,实现网络检测和倒计时功能
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user