相关疑难解决方法(0)

我在Android中使用ListActivity有内存泄漏

我有一个使用服务和一些列表活动的应用程序.当活动打开时,我可以看到DDMS中的堆使用量增加,当活动关闭时,堆使用量会略有下降.此时此服务仍在后台运行.如果通过重新运行应用程序再次启动活动并关闭,则堆使用量再次增加然后减少,但在首次打开活动之前永远不会返回到原始级别.如果它反复(10-15次)打开活动然后关闭活动,堆大小(MB和#Objects)气球!

我希望ListActivity的onDestroy能够在它被破坏时自行处理.我错过了什么?我是否错误地使用ListActivity?

类似于我的真实代码的测试应用程序如下.创建一个新的Android应用程序,将其添加到清单:

<service android:name="LeakTestService"/>

和这些java文件:

LeakTestActivity.java
-------------
package LeakTest.Test;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.SimpleAdapter;

public class LeakActivity extends ListActivity {
    ArrayList> _Data=new ArrayList>();
    ArrayAdapter _Adapter;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent svc = new Intent(this.getApplicationContext(), LeakTestService.class);
        startService(svc);

        // the problem happens with both SimpleAdapter and ArrayAdapter
        //_Adapter = new SimpleAdapter(this.getApplicationContext(), _Data, android.R.layout.two_line_list_item, new String[] { "line1","line2" …

android memory-leaks listactivity listadapter

4
推荐指数
2
解决办法
3125
查看次数

标签 统计

android ×1

listactivity ×1

listadapter ×1

memory-leaks ×1