小编Dru*_*uin的帖子

Android:在Gallery中使用位图的outOfMemoryError

我有一个应用程序从服务器下载图像,将它们存储在SD卡上,然后以幻灯片形式显示给用户.该应用程序有许多不同的幻灯片,用户可以查看.我的问题是,在我查看几个画廊后,我发现内存不足错误.我做了很多谷歌搜索,并阅读了Romain Guy的Avoiding Memory Leaks文章大约20次.我试图复制他的unbindDrawables()方法,但是无法在Gallery对象上调用removeAllViews().我也尝试在所有位图上调用recycle()但是当我在适配器中的位图上执行时,应用程序会在打开图库时立即抛出错误.我也尝试重新编码幻灯片,以便在适配器外部创建所有位图,然后将它们作为数组传递 - 这允许我遍历我的位图数组并在幻灯片中的onDestroy方法中对每个位图调用recycle()活动 - 但这实际上似乎使泄漏变得更糟.

以下是我的幻灯片活动的代码:

public class Slideshow extends Activity {
    static String galleryId;
    public static final int MSG_DOWNLOADED = 0;
    static  Handler handler;
    static Gallery g;
    static ArrayList<String> filePaths;
    static String subFolder;
    static ArrayList<String>  imageToGet;
    static LinearLayout pb;
    static boolean firstTime = true;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            setContentView(R.layout.slideshow);
            Context context = getApplicationContext();


            Bundle extras = getIntent().getExtras();

            if(extras != null){
            galleryId = extras.getString("galleryId");
            }
            pb = (LinearLayout) findViewById(R.id.progress); 
             handler = new Handler(){
                    @Override
                    public …
Run Code Online (Sandbox Code Playgroud)

java android bitmap out-of-memory

0
推荐指数
1
解决办法
1127
查看次数

标签 统计

android ×1

bitmap ×1

java ×1

out-of-memory ×1