
- 创建项目根目录和主要子模块 - 添加基本的 Activity 和布局文件 - 实现简单的导航和电话拨打功能 - 添加相机和图像处理相关代码 - 创建网络请求和数据加密工具类 - 设置 AndroidManifest 文件和权限
62 lines
2.1 KiB
Kotlin
62 lines
2.1 KiB
Kotlin
package com.za.offline
|
|
|
|
import android.view.View
|
|
import androidx.lifecycle.Lifecycle
|
|
import androidx.lifecycle.LifecycleOwner
|
|
import androidx.lifecycle.LifecycleRegistry
|
|
import androidx.lifecycle.ViewModelStore
|
|
import androidx.lifecycle.ViewModelStoreOwner
|
|
import androidx.lifecycle.setViewTreeLifecycleOwner
|
|
import androidx.lifecycle.setViewTreeViewModelStoreOwner
|
|
import androidx.savedstate.SavedStateRegistry
|
|
import androidx.savedstate.SavedStateRegistryController
|
|
import androidx.savedstate.SavedStateRegistryOwner
|
|
import androidx.savedstate.setViewTreeSavedStateRegistryOwner
|
|
|
|
class MyOfflineServiceViewLifecycleOwner : LifecycleOwner, ViewModelStoreOwner, SavedStateRegistryOwner {
|
|
private val lifecycleRegistry: LifecycleRegistry = LifecycleRegistry(this)
|
|
private val savedStateRegistryController = SavedStateRegistryController.create(this)
|
|
private val store = ViewModelStore()
|
|
|
|
override val lifecycle: Lifecycle
|
|
get() = lifecycleRegistry
|
|
override val savedStateRegistry: SavedStateRegistry
|
|
get() = savedStateRegistryController.savedStateRegistry
|
|
override val viewModelStore: ViewModelStore
|
|
get() = store
|
|
|
|
|
|
fun onCreate() {
|
|
savedStateRegistryController.performRestore(null)
|
|
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE)
|
|
}
|
|
|
|
fun onStart() {
|
|
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START)
|
|
}
|
|
|
|
fun onResume() {
|
|
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_RESUME)
|
|
}
|
|
|
|
fun onPause() {
|
|
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_PAUSE)
|
|
}
|
|
|
|
fun onStop() {
|
|
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP)
|
|
}
|
|
|
|
fun onDestroy() {
|
|
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY)
|
|
store.clear()
|
|
}
|
|
|
|
fun attachToDecorView(decorView: View?) {
|
|
decorView?.let {
|
|
it.setViewTreeViewModelStoreOwner(this)
|
|
it.setViewTreeLifecycleOwner(this)
|
|
it.setViewTreeSavedStateRegistryOwner(this)
|
|
} ?: return
|
|
}
|
|
} |