Java Android方向改变异常
我在安卓系统的屏幕定位方面遇到了困难。我有一个活动,它在用户在设备上绘制签名后捕获签名。对于那个活动,我传递一个可分配的对象,我在oncreate中得到它。当“活动”更改方向时,有时“活动”无法获取可分配对象,并出现异常。我尝试将静态对象用于可包裹对象,但没有任何用处。我尝试了onsaveinstance状态方法和onRetainonConfiguration实例方法Java Android方向改变异常,java,android,Java,Android,我在安卓系统的屏幕定位方面遇到了困难。我有一个活动,它在用户在设备上绘制签名后捕获签名。对于那个活动,我传递一个可分配的对象,我在oncreate中得到它。当“活动”更改方向时,有时“活动”无法获取可分配对象,并出现异常。我尝试将静态对象用于可包裹对象,但没有任何用处。我尝试了onsaveinstance状态方法和onRetainonConfiguration实例方法 @Override protected void onCreate(Bundle savedInstanceState) {
@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");
}
我的save instance state方法是这样的
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putParcelable("info", info);
super.onSaveInstanceState(outState);
}
从onconfiguration changed方法中,我调用setcontentview方法来设置新的布局
@Override
public void onConfigurationChanged(Configuration newConfig) {
setContentView(R.layout.signature_capture_view);
super.onConfigurationChanged(newConfig);
}
有时,当方向更改时,setcontentview方法会出现内存不足异常
任何帮助都将不胜感激。提前谢谢 尝试在活动标记的清单中为内存不足错误设置此选项:
android:configChanges="orientation"
尝试在AndroidManifest.xml文件中设置以下android:configChanges属性:
<activity android:name=".MyActivity"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden">
如果您希望应用程序固定为纵向或横向模式打开,则在活动标签中添加android:screenOrientation:
<activity android:name=".MyActivity"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait">
我终于找到了内存不足的答案,在我的签名绘图视图中,我没有检查视图中的位图是否为空,每次设备更改方向时,它都会在视图中创建位图。它产生了OOM。因此,我为位图插入了一个空检查,oom消失了。谢谢你们的快速回复 如果要更改横向/纵向视图,则应按照以下步骤解决内存不足错误
嗨,娜拉,你为什么不使用android:screenOrientation=“肖像”嗨,Deepak,我还需要横向模式。谢谢你的回复paresh,我的应用程序也需要横向模式。这听起来可能有点愚蠢,但你可以将数据保存到sqllite数据库中。。。
super.onConfigurationChanged(newConfig);
this.recreate();
}