第一个MapActivity实例是否总是泄漏?
问题描述:
在我们的应用程序中调查内存问题时,事实证明,如果应用程序Activity是MapActivity,则它的第一个实例将不会最终确定。导致其他内存泄漏,例如传递给setContentView的视图。第一个MapActivity实例是否总是泄漏?
有没有人注意过?
以下是测试代码,显示“MainActivity:1”未完成,而MainActivity继承自Activity。
要测试,需要多次更改设备或仿真器方向。
import com.google.android.maps.MapActivity;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends MapActivity {
private static final String defaultTag = "MA";
private static final boolean isDebugModeActivate = true;
private static final boolean isClassTagDisplayed = false;
private static final boolean isWebModeActivate = false;
static public void d(Object thiso, String message)
{
String tag = defaultTag + (isClassTagDisplayed == true ? "_" + thiso.getClass().getSimpleName() : "");
message = (isClassTagDisplayed == false ? thiso.getClass().getSimpleName() + " : " : "") + message;
Log.d(tag, message);
}
public MainActivity()
{
counter++;
uid++;
id = uid;
d(this, id + " tst constructor (" + counter + ")");
}
private static int counter = 0;
private static int uid = 0;
private final int id;
protected void finalize() throws Throwable
{
counter--;
d(this, id + " tst finalize (" +counter + ") ");
super.finalize();
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
protected boolean isRouteDisplayed()
{
return false;
}
}
谢谢 大卫
你是不是唯一一个与Android泄漏问题:http://*.com/questions/5111139 /为什么 - 我的代码泄漏 - 何时切换活动 – 2011-02-24 22:23:16
http://*.com/questions/4218359/my-simple-listview-app-is-leaking-memory-what-am-i-doing -wrong – 2011-02-24 22:23:44
@泰勒,是的,我知道。由于我没有发现这个特定的内存泄漏,我想这是很好的参考它。至少这可以节省数小时的调查。 – david 2011-02-24 22:47:28