android - 它是android中的内存泄漏吗

标签 android memory-leaks

我创建了具有两个 Activity 的简单应用程序,在两个 Activity 中都有一个链接到另一个 Activity 的按钮。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.two);
    Button btn = (Button) findViewById(R.id.button);
    btn.setOnClickListener(this);
}

@Override
public void onClick(View view) {
    if (intent != null) intent = null;
    intent = new Intent(Two.this,MainActivity.class);
    startActivity(intent);
}

在两个 Activity 中都有相同的代码。当我按下 Button 并按下 DDMS 中的 Cause GC 时,allocated 总是增长 25kb 这正常吗?

最佳答案

我不会将其称为内存泄漏,但概念很差。您正在做的是将 Activity 放在堆栈上,这当然会占用越来越多的内存。如果您只想打开上一个 Activity (这样就不会在每次调用startActivity(...) 时都创建一个新 Activity ),请使用:

Intent intent = new Intent(Two.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

如果您想了解有关任务和返回堆栈的更多信息,请访问 this guide .

关于android - 它是android中的内存泄漏吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32152375/

相关文章:

android - 以编程方式查找是否允许从未知来源安装

java - 如何监控/分析在 Glassfish 上运行的 Web 项目

c - 神秘变化的结构成员(涉及指针):

c++ - 此 C++ 代码是否会导致内存泄漏(强制转换数组 new)

string - Delphi 应用程序泄漏 AnsiStrings

javascript - jQuery 3.1.1 appendTo 和空内存泄漏

java - 在 Java 中从 JNI 设置值 : JNI java. lang.NoSuchFieldError

Android 麦克风拾取特定音调

android - 如何在不将其他 View 推离屏幕的情况下允许 View 扩展

java - 如果用户在设备上选择了省电定位模式,是否可以在 Android 上获得高精度位置更新?