1

我遇到了这个问题。当我启动并重新启动我的应用程序 5 次时,我有内存泄漏。似乎 phonegap 和 Cordova 浏览器在内存中留下了一些对象。

07-28 03:48:01.886: E/dalvikvm(10729): Failed adding to JNI local ref table (has 512 entries)
07-28 03:48:01.895: E/dalvikvm(10729): VM aborting
07-28 03:48:01.895: A/libc(10729): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1) 
Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1)

一旦应用程序崩溃,我通常可以再次重新启动应用程序,并且它可以运行其他 5 次。那么我通常如何杀死我的应用程序以便删除内存中的所有 javascript 呢?

// about 116 script elements
que.forEach(function (f, i) {
    var s = d.createElement('script');
    s.async = false;
    s.src = f;
    s.onload = function () {
        loaded++;
        p = loaded / que.length;
        //TODO: code for updating progress bar
    };
    d.body.appendChild(s);
    que[i] = s;

});

这也没有解决问题:

for (var i = tags.length; i >= 0; i--){ //search backwards within nodelist   for matching elements to remove
             if (tags[i] && tags[i].getAttribute('src') != null) {
                  tags[i].parentNode.removeChild(tags[i]); //remove element by calling parentNode.removeChild()
                  for (var prop in tags[i]) {
                      delete tags[i][prop];
                    }
             }
         }
4

1 回答 1

0

在对我有用的 onCreate 方法中调用此方法->

super.setBooleanProperty("keepRunning", false);
于 2013-09-05T05:50:14.617 回答