我从Web服务器获取某些数据,比如说Activity_1中的userName.然后我想在Activity_2中使用相同的数据
所以我把这个userName设为Public Static,并在Activity_2中使用这个
Activity_1.userName
但是当我在Activity_2中并按下Home Button并在5分钟后重新打开应用程序时,此Activity_1.userName将变为Null,因为Activity_1数据已被销毁.我得到NullPointerException
如何以简单的方式解决这个问题.
我刚刚给出了一个userName的例子,但实际上它的其他一些数据每天都在变化,比如说“当天的新闻”
许多人建议删除public static并将该userName发送为:
Intent.putExtra("user_name", userName);
但这与我正在做的不一样.我的意思是即便这样我也会得到NullPointerException吗?
解决方法:
有两种方法可以做到这一点.
>始终确保Activity1是应用程序中的起始活动.我的意思是,如果用户关闭应用程序并再次重新启动它,应用程序应该来自Activity1,从而再次获取数据.然后只去Activity2.另请注意,您可以使用AsyncTask从Activity2中的Web中获取数据.
>在SharedPreferences中保存Activity1中的数据,在Activity2中始终使用SharedPreferences读取值.