Bug 1540573 - P1. Observe ProcessLifecycle events in GeckoRuntime. r=snorp

This is esawin's patch from Bug 1544076; D28083.

Differential Revision: https://phabricator.services.mozilla.com/D28941

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Eugen Sawin ext:(%2C%20Chris%20Pearce%20%3Ccpearce%40mozilla.com%3E) 2019-05-03 02:43:02 +00:00
parent 4eeb57f7c1
commit 524b2509b6

View File

@ -6,6 +6,11 @@
package org.mozilla.geckoview;
import android.arch.lifecycle.ProcessLifecycleOwner;
import android.arch.lifecycle.Lifecycle;
import android.arch.lifecycle.LifecycleObserver;
import android.arch.lifecycle.OnLifecycleEvent;
import android.app.ActivityManager;
import android.content.ComponentName;
import android.content.Context;
@ -93,6 +98,31 @@ public final class GeckoRuntime implements Parcelable {
*/
public static final String EXTRA_CRASH_FATAL = "fatal";
private final class LifecycleListener implements LifecycleObserver {
public LifecycleListener() {
}
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
void onCreate() {
Log.d(LOGTAG, "Lifecycle: onCreate");
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
void onStart() {
Log.d(LOGTAG, "Lifecycle: onStart");
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
void onResume() {
Log.d(LOGTAG, "Lifecycle: onResume");
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
void onPause() {
Log.d(LOGTAG, "Lifecycle: onPause");
}
}
private static GeckoRuntime sDefaultRuntime;
/**
@ -266,6 +296,9 @@ public final class GeckoRuntime implements Parcelable {
// Initialize the system ClipboardManager by accessing it on the main thread.
GeckoAppShell.getApplicationContext().getSystemService(Context.CLIPBOARD_SERVICE);
// Add process lifecycle listener to react to backgrounding events.
ProcessLifecycleOwner.get().getLifecycle().addObserver(new LifecycleListener());
return true;
}