我遇到了一个无法修复的问题,每当我在onPause方法的布局上调用setbackgroundresources(0)时,我的背景变为黑色但所有其他组件都保留了1秒。我试图释放一些记忆,这是我到现在为止尝试的唯一方法。反正有没有避免这种问题?
这是代码:
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
relativelayout.setBackgroundResource(0);
}
答案 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);}
}
现在一切正常,我的内存管理问题现在已修复。