描述:
今天在做一个功能的时候,从Aactivity跳到Bactivity。
由于Bactivity的操作,影响了Aactivity的数据,所以再回到A的时候,需要A能够进行刷新操作。
但是默认跳回去的时候,A界面还是上次那个。
解决方案:
重写Aactivity的onResume()方法,在onResume()方面里进行刷新操作。因为按照activity的生命周期模型,当activity恢复的时候,onResume()方法会被调用,所以这是一个刷新的好机会。
今天在做一个功能的时候,从Aactivity跳到Bactivity。
由于Bactivity的操作,影响了Aactivity的数据,所以再回到A的时候,需要A能够进行刷新操作。
但是默认跳回去的时候,A界面还是上次那个。
解决方案:
重写Aactivity的onResume()方法,在onResume()方面里进行刷新操作。因为按照activity的生命周期模型,当activity恢复的时候,onResume()方法会被调用,所以这是一个刷新的好机会。
我发现app刚打开的时候就开始调用onResume(),所以里面如果直接调用adapter.notifyDataSetChanged()的话,app一运行就挂掉了,报java.lang.NullPointerException,原因是此时ListAdapter还未实例化,所以报空指针,解决办法就是先用if判断adapter是否为null
不过为啥app刚开始运行就调用onResume()我还不知道,学完Activity生命周期再说吧
另外关于ListView的刷新方法notifyDataSetChanged(),直接用Adapter调用是没用的,使用前要先更新Adapter使用的List数据,然后再用Adapter调用notifyDataSetChanged()方法
</