额。今天这个问题真是给我跪了。我activity A往activity B传值。假设传递的是1.当我按下返回键。然后再次去b的时候发现值变成了11.
这真是急死我了。。我开始还以为是back键并不会结束当前的的activity。但通过log打印日志发现按下back是会回调ondestroy的。这就奇怪了。既然当前的activity销毁了。按理说第一次的1就不存在了啊。。后来冷静分析了一下。发现了问题的关键。
activity其实是以栈的形式存在的。当我们在b中按下返回键的时候虽然b是被销毁了。但是a仍然是存在的。从你一开始操作到结束。a始终是存在的。而每次去传递1.加上之前的1仍然在a的变量中保存着。导致了再次去往b的时候传过去的变成了11.
希望大家也要注意这个问题。发现了问题也不要一直死死纠缠在一个问题上。换个角度。说不定就能解决了。