updates to manual GC

This commit is contained in:
Kyle Spearrin 2017-02-19 17:29:00 -05:00
parent 54159c9d05
commit 613977c6f9

View file

@ -51,6 +51,9 @@ namespace Bit.Android
new Browser("com.ksmobile.cb", "address_bar_edit_text") new Browser("com.ksmobile.cb", "address_bar_edit_text")
}.ToDictionary(n => n.PackageName); }.ToDictionary(n => n.PackageName);
private long _lastGc = 0;
private int _eventCounter = 0;
public override void OnAccessibilityEvent(AccessibilityEvent e) public override void OnAccessibilityEvent(AccessibilityEvent e)
{ {
var root = RootInActiveWindow; var root = RootInActiveWindow;
@ -88,7 +91,9 @@ namespace Bit.Android
var allEditTexts = GetWindowNodes(root, e, n => EditText(n)); var allEditTexts = GetWindowNodes(root, e, n => EditText(n));
var usernameEditText = allEditTexts.TakeWhile(n => !n.Password).LastOrDefault(); var usernameEditText = allEditTexts.TakeWhile(n => !n.Password).LastOrDefault();
FillCredentials(usernameEditText, passwordNodes); FillCredentials(usernameEditText, passwordNodes);
allEditTexts = null; allEditTexts = null;
usernameEditText = null;
} }
else else
{ {
@ -111,7 +116,16 @@ namespace Bit.Android
} }
root = null; root = null;
GC.Collect(0);
// Do some manual GCing
_eventCounter++;
var now = Java.Lang.JavaSystem.CurrentTimeMillis();
if((now - _lastGc) > 60000 && _eventCounter >= 20)
{
GC.Collect(0);
_lastGc = now;
_eventCounter = 0;
}
} }
public override void OnInterrupt() public override void OnInterrupt()