现有三个Activity A、B、C,在A中填写一些数据,然后跳到B,在B中选择一种分类,然后跳转到C,在C中显示该分类下的所有商品,最后在C中选择商品,然后点击确定返回A界面。
    我用startActivity方法返回A,但是这种方法把原先在A界面填写的数据给清空了。请问:如何实现从C返回A并可以显示原先填写的数据??

解决方案 »

  1.   

    从B跳到C时,将B的Activity finish()掉,最后在C中选择商品,然后点击确定时将C的Activity finish()即可就是Activity的堆栈,看你怎样将Activity在堆栈中处理了。
      

  2.   

    保存activity状态
    当系统而不是用户自己出于回收内存的考虑,关闭了一个activity之后。用户会期望当他再次回到那个activity的时候,它仍保持着上次离开时的样子。为了获取activity被杀死前的状态,你应该为activity实现onSaveInstanceState() 方法。Android会调用此方法在activity有可能被销毁之前(即onPause() 调用之前)。它会将一个以名称-值对方式记录了activity动态状态的Bundle 对象传递给该方法。当activity再次启动时,这个Bundle会传递给onCreate()方法和随着onStart()方法调用的onRestoreInstanceState(),所以它们两个都可以恢复捕获的状态。与onPause()或先前讨论的其它方法不同,onSaveInstanceState() 和 onRestoreInstanceState() 并不是生命周期方法。它们并不是总会被调用。比如说,Android会在activity易于被系统销毁之前调用 onSaveInstanceState(),但用户动作(比如按下了BACK键)造成的销毁则不调用。在这种情况下,用户没打算再次回到这个activity,所以没有保存状态的必要。因为onSaveInstanceState()不是总被调用,所以你应该只用它来为activity保存一些临时的状态,而不能用来保存持久性数据。而是应该用onPause()来达到这个目的。