好像android就是这么做的,内存不够时就释放一些weak的变量,所以你要自己在自己的应用里面做好这个处理,比如oncreate和onresume的时候都判断一下,如果是空就再分配
解决方案 »
- 有没有哪位高手最近面试过百度的Android开发职位(社区搜索部Andriod客户端开发)
- 以 android\packages\app\voiceDialer 为例, 如何在界面上加一个按钮
- 请问一个启动第三方应用程序的问题
- Android2.x系统上的音视频录制的pause/resume功能的实现方法?
- activity 问题
- 有没有办法在锁屏时监听按键?
- android应用如何快速显示网络图片
- 那位大神帮忙JAVA解析JSON
- 新手!求助在线自动更新之后,为什么总是提示更新,怎么修改versionCdoe的值
- 本来想发到stackoverflow的,但是没有账号,只能发这里了。android gridview抢占焦点问题
- 添加的联系人怎么没姓名?
- 帮忙看看,这个分离字符串的是这样写吧?
因为如果进行oncreate的话,那这个Activity都已经不存在了
我每次都会执行onCreate方法(意思是在onCreate中就出异常了),获取控件的引用是通过findViewById方法,只是获取不到,为什么呢?
xml中应经+id了,编译也通过了,但是在运行的时候就报这个控件为空的异常了,难道是因为内存不够,直接没给分配上内存?
简单的说就是先findViewById获取引用,然后用,出错,说null。
例如:
setContentView(R.layout.main)
Button button = (Button)this.findViewById(R.id.buttonId)
button.setText()等等
出错
这行button.setText()报错,说空。是button空。
我用LayoutInflater加载了一个布局,而我的Button就是在这个布局中的,而不是我的Activity中加载的那个布局。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_inflater_demo);
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.defined_dialog, null);
testButton = (Button) view.findViewById(R.id.definedDialog_test_button_id);
testButton.setOnClickListener(this);
}
之前将testButton = (Button) view.findViewById(R.id.definedDialog_test_button_id);
写成testButton = (Button) this.findViewById(R.id.definedDialog_test_button_id);所以出错了。