我有一个非常复杂的应用程序泄漏内存。为了追踪泄漏,我将启动器应用程序剥离到一个非常简单的Android应用程序,该应用程序在导航到下一个活动时仍然会泄漏活动。我在Android工作室使用hprof分析器发现了泄漏。整个剥离的启动器活动是:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class HomeTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnStaffStart = (Button)findViewById(R.id.btnStaffStart);
btnStaffStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent startNewActivityOpen = new Intent(HomeTest.this, StaffMenu.class);
startActivity(startNewActivityOpen);
finish();
}
});
}
}
当我导航到StaffMenu活动时,分析器显示HomeTest活动的泄漏。什么,如果有的话,我做错了还是启动活动总是在Android中泄漏内存?我没有收到OutOfMemory错误消息,我只是不喜欢泄漏内存。该应用程序没有分配太多内存,因此即使在精简活动中(小于1%),可用内存也非常小。
我正在运行Android 4.2,4.4和5.1。
修改 我刚尝试了另一个应用程序,它在导航到下一个活动后也泄漏了启动器活动。已知的android bug ???
答案 0 :(得分:2)