方向更改后ViewFlipper崩溃

时间:2010-10-25 07:53:02

标签: android viewflipper

我在使用ViewFlipper访问视图中的数据时尝试使用inflate。我做过崩溃的示例项目。

main.xml

<?xml version="1.0" encoding="utf-8"?>  
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"  
    android:id="@+id/RelativeLayout"  
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content" />

FlipViewBug.java

package android.FlipViewBug;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
public class FlipViewBug extends Activity {

    private static LayoutInflater inflater = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
}

当我将模拟器从水平方向旋转到垂直方向 CTRL + F11 应用程序因 意外停止 而崩溃。

如果我删除行

inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

app工作正常。我想做错事吗?在我的应用中,我有更复杂的LinnarView ViewFlipper嵌套,结果相同。

我在Android 1.5,2.2和galaxy选项卡上检查了这个。将垂直视图旋转到水平时没有问题。

1 个答案:

答案 0 :(得分:0)

根据经验,如果您在static数据中存储UI objectrefs,那么您可能做错了。 :)即使事情似乎有效,在Android决定杀死您的进程之前,您可能会泄漏内存。有关详细信息,请参阅Romain Guy's article

所以基本上你回答了自己的问题......不要这样做!如果你想推迟翻阅视图的通知,直到它们被翻转(即作为性能改进),我建议你研究ViewStub