在应用关闭后使用onSaveInstanceState如何在Android中保存应用数据?

问题描述

我正在尝试使用ADB模拟关闭应用程序。我将数据存储在onSaveInstanceState()中的束中,以便一旦回到应用程序后就可以取回数据。但是我无法取回数据。 这是我正在使用的代码(来自Google的一个代码实验室)

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
  
    dessertTimer = DessertTimer(this.lifecycle)
    
    if(savedInstanceState != null)
    {
      
        revenue = savedInstanceState.getInt(KEY_REVENUE,0)
        dessertsSold = savedInstanceState.getInt(KEY_DESSERT_SOLD,0)
        dessertTimer.secondsCount = savedInstanceState.getInt(KEY_TIMER_SECONDS,0)
    }
  
    binding = DataBindingUtil.setContentView(this,R.layout.activity_main)
    binding.dessertButton.setonClickListener {
        onDessertClicked()
    }
  
    binding.revenue = revenue
    binding.amountSold = dessertsSold
  
    binding.dessertButton.setimageResource(currentDessert.imageId)
}

这是onSaveInstanceState()中的代码

 override fun onSaveInstanceState(outState: Bundle?) {
   
       super.onSaveInstanceState(outState)

        outState!!.putInt(KEY_REVENUE,revenue)
        outState!!.putInt(KEY_DESSERT_SOLD,dessertsSold)
        outState!!.putInt(KEY_TIMER_SECONDS,dessertTimer.secondsCount)

}

解决方法

正如@Beko所说,请勿使用onSaveInstaceState来保存应用程序关闭后所需的内容。无法恢复。

您有两种解决方案: