美文网首页
Activity的数据恢复与保存

Activity的数据恢复与保存

作者: 撸码小狂魔 | 来源:发表于2020-05-26 18:07 被阅读0次

    默认情况下,Acticity 会自动保存数据,但在横竖屏切换的时候,或者内存不足被系统干掉的时候,需要手动的保存与回复一些必要的数据。

    package com.psj.myapplication
    
    import androidx.appcompat.app.AppCompatActivity
    import android.os.Bundle
    import android.util.Log
    import android.widget.Toast
    import kotlinx.android.synthetic.main.activity_main.*
    
    class MainActivity : AppCompatActivity() {
    
        val tag : String by lazy {
            MainActivity::class.java.simpleName
        }
    
        override fun onCreate(savedInstanceState: Bundle?) {
    
            super.onCreate(savedInstanceState)
            Log.i(tag,"onCreate")
    
    
            setContentView(R.layout.activity_main)
    
            Log.i(tag,"savedInstanceState == null ? " + (savedInstanceState == null))
    
            savedInstanceState?.getString("data")?.let {
                Log.i(tag,"保存的数据为: " + it)
                Toast.makeText(MainActivity@this,it,Toast.LENGTH_SHORT).show()
            }
    
        }
    
    
        override fun onStop() {
            super.onStop()
            Log.i(tag,"onStop")
        }
    
        override fun onPause() {
            super.onPause()
            Log.i(tag,"onPause")
        }
    
        // 在Activity的 onStop 方法被调用之前肯定会被调用
    // 如果用户自己手动按返回按键导致销毁Acticity,那么保存的数据无效
        override fun onSaveInstanceState(outState: Bundle) {
            super.onSaveInstanceState(outState)
            Log.i(tag,"onSaveInstanceState")
            //将数据保存在 outState 对象了里面
            outState.putString("data", "这是我保存的数据")
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:Activity的数据恢复与保存

          本文链接:https://www.haomeiwen.com/subject/drmvahtx.html