在程序中设置了应用程序级变量,类如下:public class InPhonePhotoApplication extends Application {
private String ServerAddress = "";
private String UserName = "";
private String Permission = "";
private String BelongWareHouseStr = "";

@Override
public void onCreate(){
super.onCreate();
}

public void setServerAddress(String value){
ServerAddress = value;
return;
}

public String getServerAddress(){
return ServerAddress;
}
}
}xml中Application段加入android:name="InPhonePhotoApplication"
此变量也可正常调用。
调用代码为((InPhonePhotoApplication)getApplicationContext()).getServerAddress();
但是在我用通过Intent调用拍照程序,反复多次(随机次数),就会出现变量为""的情况,无从下手
不知道是什么引起了这个情况,请大家多多指教

解决方案 »

  1.   

    拍照程序比较占内存,你那变量系统给你自动释放掉了吧,看看Application 这个:
    @Override
    public void onLowMemory() {
    // TODO Auto-generated method stub
    super.onLowMemory();
    }
      

  2.   

    你先确认下是否发生了onLowMemory而导致的,是的话在onLowMemory事件中把值存储到文件中
      

  3.   

    就是你在 onLowMemory(){}摄者断点 能跑进去 说明有东西被回收了
      

  4.   

    可是onLowMemory会回收全局Application对象吗?
    在onLowMemory没有被触发的情况下,也会全局变量丢失
    汗啊
      

  5.   

    楼主解决了么,我也遇到类似的问题,我是从我的应用中打开系统的安装程序去安装别的应用,返回后,所有的资源貌似都被回收了,onCreate又重新执行了一遍你若解决了,分享一下经验啊
      

  6.   

    Activity的onRestoreInstanceState onSaveInstanceState 是一个应急存储机制,当资源被强制释放,可以从这里找回。