在onPause中调用setbackgroundresource(0)时,在更改活动期间避免黑色背景?

时间:2014-05-27 10:41:11

标签: android layout onpause

我遇到了一个无法修复的问题,每当我在onPause方法的布局上调用setbackgroundresources(0)时,我的背景变为黑色但所有其他组件都保留了1秒。我试图释放一些记忆,这是我到现在为止尝试的唯一方法。反正有没有避免这种问题?

这是代码:

protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();

        relativelayout.setBackgroundResource(0);            
}

2 个答案:

答案 0 :(得分:0)

为避免您可以在样式中为应用程序设置默认背景,代替黑色屏幕,它将显示您指定的图像..例如

<style name="Theme.FullScreen" parent="@android:style/Theme.NoTitleBar.Fullscreen">
        <item name="android:windowBackground">@drawable/splash1</item>
    </style>

答案 1 :(得分:0)

好的伙计们,我刚刚想出如何在活动切换期间避免黑色背景!首先,我使用以下代码解码了XML布局的背景图像:

xmlbackground= BitmapFactory.decodeResource(this.getResources(), R.drawable.xmlbackgroundimage);

其次,在onPause方法中,我已经回收了位图:

    @Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();        
    xmlbackground.recycle();
    xmlbackground= null;
}

在此之后,Bitmap被正确回收,但当我回到此活动时,我的应用程序会崩溃,因此我已用这行代码解决了这个问题:

    @Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    if (xmlbackground== null || xmlbackground.isRecycled()){xmlbackground=BitmapFactory.decodeResource(this.getResources(), R.drawable.xmlbackgroundimage);}

}

现在一切正常,我的内存管理问题现在已修复。