Android方向更改例外

问题描述

| 我在Android的屏幕方向上遇到了麻烦。我有一个活动,可以在用户在设备上绘制其签名后捕获签名。对于该活动,我传递了一个可仿造的对象,并将其放入oncreate中。当活动改变方向时,有时活动无法获得可模仿的对象并给出异常。我尝试将静态对象用于parceable对象,但没有用。我也尝试了onsaveinstance状态方法和onRetainNonConfigurationInstance方法
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.signature_capture_view);
    Bundle bundle = getIntent().getExtras(); 
    info = bundle.getParcelable(\"info\");
    logo= (Bitmap) bundle.get(\"logo\");
}
我的保存实例状态方法是这样的;
@Override
 protected void onSaveInstanceState(Bundle outState) {
 outState.putParcelable(\"info\",info);
 super.onSaveInstanceState(outState);
 }
从onconfiguration更改的方法中,我调用setcontentview方法以设置新的布局。
@Override
public void onConfigurationChanged(Configuration newConfig) {
    setContentView(R.layout.signature_capture_view);
    super.onConfigurationChanged(newConfig);
}
有时,当方向更改时,setcontentview方法会发生内存不足的异常。 任何帮助将不胜感激。提前致谢。     

解决方法

        尝试在AndroidManifest.xml文件中设置以下android:configChanges属性:
  <activity android:name=\".MyActivity\"
                  android:label=\"@string/app_name\"
                  android:configChanges=\"orientation|keyboardHidden\">
而且,如果您希望将应用程序固定为以“纵向”或“横向”模式打开,请在activity标签内添加android:screenOrientation:
   <activity android:name=\".MyActivity\"
              android:label=\"@string/app_name\"
              android:configChanges=\"orientation|keyboardHidden\"
              android:screenOrientation=\"portrait\">
    ,        如果要更改横向/纵向视图,则应按照以下步骤解决内存不足错误。 在活动标签的清单中进行设置   android:configChanges = \“方向\” 在Anctivity中   公共无效onConfigurationChanged(Configuration newConfig){
    super.onConfigurationChanged(newConfig);

    this.recreate();
}
    ,        尝试在活动标签上的清单中设置此选项,以解决内存不足错误:
android:configChanges=\"orientation\"
    ,        我终于找到了内存不足的答案,在我的签名绘图视图中,我没有检查视图中的位图是否为空,并且每次设备更改方向时,它都会在视图内部创建位图。并生成OOM。因此,我为位图插入了一个空检查,并且oom消失了。感谢您的快速答复。