2011-10-24 103 views
0

我想知道是否有可能杀死,关闭创建的webview后,它不需要。它有4mb内存泄漏,我只是找不到一种方法来杀死它。钛手机,android关闭WebView

例如:

var webview = Titanium.UI.createWebView({ 
    html:'hello world' 
}); 

var win = Titanium.UI.currentWindow; 

win.addEventListener('android:back', function(e){ 
    win.remove(webview); 
    win.close(); 
}); 

但它不工作。我仍然看不到内存使用的变化。任何人都知道解决方案?

+0

垃圾收集器只会在存在内存压力时运行......实际上可能会释放垃圾收集器,而不会收集垃圾收集器。当变量超出范围时,它应该是候选者,但是如果您希望更快地释放对象,则可以按照Ben的建议将参考设置为null。 –

+0

您可以通过直接访问java运行时来强制gc。这仅适用于Android,所以如果你使用多平台,你需要处理这个问题。像java.lang.Runtime.getRuntime()。gc();应该管用。您可以从运行时获得比Ti更好的内存统计信息。 –

回答

0

只要您删除对webview的引用,如delete webview,Javascript的垃圾回收器应该最终将其拾取并释放内存。

0

如果将引用设置为null,GC将在运行时收集它。