Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android应用程序的高内存使用率_Java_Android - Fatal编程技术网

Java Android应用程序的高内存使用率

Java Android应用程序的高内存使用率,java,android,Java,Android,我有一个小应用程序,这个应用程序有7个活动,基本上6个是带有图像的布局,一个是MapActivity,在5个布局中,一个有一个内部类的ArrayList,每次我使用我的应用程序,内存都会增长到50mb、70mb、111mb。。。我试图呼叫垃圾收集器,但没有收到预期的结果 public class GC { public static final Runtime runtime = Runtime.getRuntime(); public static void Fre

我有一个小应用程序,这个应用程序有7个活动,基本上6个是带有图像的布局,一个是MapActivity,在5个布局中,一个有一个内部类的ArrayList,每次我使用我的应用程序,内存都会增长到50mb、70mb、111mb。。。我试图呼叫垃圾收集器,但没有收到预期的结果

public class GC 
{    
    public static final Runtime runtime = Runtime.getRuntime();

    public static void Free()
    {
        runtime.gc();
    }
}
请看这里:

  • 确保正确结束其他活动(this.finish)
  • 您需要删除对图像的回调,否则会泄漏内存

    private void unbindDrawables(View view) {
    if (view.getBackground() != null) {
        view.getBackground().setCallback(null);
    }
    if (view instanceof ViewGroup) {
        for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
            unbindDrawables(((ViewGroup) view).getChildAt(i));
        }
        ((ViewGroup) view).removeAllViews();
    }
    
    private void unbindDrawable(视图){
    if(view.getBackground()!=null){
    view.getBackground().setCallback(null);
    }
    if(视图组的视图实例){
    对于(int i=0;i<((视图组)视图)。getChildCount();i++){
    未绑定的Drawables(((视图组)视图).getChildAt(i));
    }
    ((视图组)视图);
    }
    

  • 用视图的根调用它(即unbindDrawables(findViewById(R.id.xml\u layout\u root));

    我实现了你的解决方案,但我仍然无法使用内存!我疯了,因为我不知道如何在android应用程序上清理内存。