android 中成员变量变成null了,怎么办

天王盖地虎626 发布于 2015/05/08 15:11
阅读 1K+
收藏 0
在android开发中,我遇到过重要的成员变量无缘无故的变成null,请问这是因为内存不够,系统自动释放造成的吗?
有什么办法解决呀?
加载中
0
oldfeel
oldfeel

1. 使用单例模式,创建一个静态类,每次使用都是 Xxx.getInstance() 这种...

2. 保存到文件中,  比如 sharedpreferences, 在使用的时候做个判断,如果为 null 就从文件读取.

0
水至浅
水至浅

activity可能会被内存回收,但是我觉得这应该不是你的情况。

除非你用的是弱引用或软引用,否则绝对不会出现被内存回收这种情况。


有可能是你的程序蹦了,然后自动重启了。比如Application或acitivity。

或者就是你的代码中逻辑有问题。

0
新一jun
新一jun
估计是放在application中的静态变量吧,会被回收的
0
Carlyle_Lee
Carlyle_Lee

程序设计中 没有无缘无故的事情;  肯定是你的 数据的容器 被 系统回收,然后在重新初始化创建,导致;

常常遇到的类似情况有:

1)Activity 销毁 重建 ,导致的Activity 内部关联数据 重置;

2)fragment 出栈销毁(不同设备,同样代码,是否被销毁 可能都不一样 ,这就是为什么有些设备上运行好好的,有的设备上运行出错)和恢复;

3)搜索 onSaveInstanceState (Activity 内成员函数) ,解决你的数据销毁 与 恢复问题;


0
zigzagroad
zigzagroad
放在SharedPreference中不会存在数据丢失现象,注意不要写错设置和获取数据的名称。
0
天王盖地虎626
天王盖地虎626

引用来自“yaray”的评论

放在SharedPreference中不会存在数据丢失现象,注意不要写错设置和获取数据的名称。

从我打出的日志来看,错误的位置是

m_index_class.setOnClickListener(new MyOnclickListener());

这个地方报null指针错误,我想,只有可能是成员变量m_index_class变量为null。我这项目的框架是xutils的,这个变量也是这样声明的:

@ViewInject(R.id.index_class)
 private RelativeLayout m_index_class; 这个变量为Null也是偶发性的,不清楚为啥会这样

感觉用SharedPreference不大好弄吧。

zigzagroad
zigzagroad
加上为空判断,为空时再获取一次
返回顶部
顶部