【问题标题】:release memory when start new activity android开始新活动android时释放内存
【发布时间】:2015-07-12 15:51:49
【问题描述】:

我不太明白开始一个新活动的工作原理以及在这样做时如何释放内存。

这就是我所拥有的:

    Button b1, b2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

        setContentView(R.layout.activity_main);

        setReferences();
    }

    private void setReferences() {
        b1= (Button) findViewById(R.id.b1);
        b2= (Button) findViewById(R.id.b2);
        b1.setOnClickListener(this);
        b2.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Intent newActivity;
        switch (v.getId()) {
            case R.id.b1:
                newActivity = new Intent("com.sblasblasbla.PLAYACTIVITY");
                startActivity(newActivity);
                break;
            case R.id.b2:
                newActivity = new Intent("com.sdasdsadsa.THIRDACTIVITY");
                startActivity(newActivity);
                break;
        }
    }
}

但是当我去另一个活动时,我想释放内存,如果我按下手机的后退按钮(返回)来保存我的活动布局(带有背景和按钮等),我的意思是不要删除它们

我怎样才能有效地做到这一点?我听说过 onStop 和 onDestroy,但我不知道它们是如何工作的。另外,如果我销毁活动,它会再次调用 onCreate?

【问题讨论】:

    标签: android android-intent memory oncreate


    【解决方案1】:

    您不需要专门做任何事情来释放内存。 Android 系统会自动对不再需要的对象进行垃圾收集

    这取决于几个因素,例如,不。当前正在运行的应用程序数量、可用 RAM 量等。但仍要好好阅读此 post

    【讨论】:

    • 我还有一张背景图片,它仍在内存中。如何释放它,因为我在堆中有 12 MB ..
    • 你无法控制什么应该在内存中,什么不应该在内存中。如果系统内存不足,它会自动清除对象。只需确保它们在其他任何地方都被引用。
    【解决方案2】:

    除非您在静态变量、服务或应用程序中泄漏指向活动的指针,否则 Android 会在需要时自动释放内存。这可能只是在您离开活动时,也可能是稍后(包括从不)。您可以查看this article 了解更多信息。

    要保存和恢复您的活动状态(不是布局,不需要保存并使用setContentView 恢复),您可以使用onSaveInstanceStateonRestoreInstanceState

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-04
      • 2016-05-27
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多