Revert "[metrics] Always enable background thread"

This reverts commit 6660e3bd463535ea6aefebc3288ac3f17fbd99fd.

Bug: 170149255

Reason for revert: Test ThreadLifecycleCallbackJava flakey.

Change-Id: Ib118654c414c27bd71d7ad3e19e1fab2d06347c7
diff --git a/runtime/metrics/reporter.cc b/runtime/metrics/reporter.cc
index 5148b20..92ae7ab 100644
--- a/runtime/metrics/reporter.cc
+++ b/runtime/metrics/reporter.cc
@@ -49,6 +49,9 @@
 }
 
 bool MetricsReporter::MaybeStartBackgroundThread(SessionData session_data) {
+  if (!config_.ReportingEnabled()) {
+    return false;
+  }
   CHECK(!thread_.has_value());
   thread_.emplace(&MetricsReporter::BackgroundThreadRun, this);
   messages_.SendMessage(BeginSessionMessage{session_data});
diff --git a/runtime/metrics/reporter.h b/runtime/metrics/reporter.h
index eff6e47..f2f7af5 100644
--- a/runtime/metrics/reporter.h
+++ b/runtime/metrics/reporter.h
@@ -46,6 +46,11 @@
 
   // If set, metrics will be reported every time this many seconds elapses.
   std::optional<unsigned int> periodic_report_seconds;
+
+  // Returns whether any options are set that enables metrics reporting.
+  constexpr bool ReportingEnabled() const {
+    return dump_to_logcat || dump_to_file.has_value() || dump_to_statsd;
+  }
 };
 
 // MetricsReporter handles periodically reporting ART metrics.
diff --git a/test/911-get-stack-trace/src/art/PrintThread.java b/test/911-get-stack-trace/src/art/PrintThread.java
index f843cc3..94f3a33 100644
--- a/test/911-get-stack-trace/src/art/PrintThread.java
+++ b/test/911-get-stack-trace/src/art/PrintThread.java
@@ -42,8 +42,7 @@
   // may not exist depending on the environment.
   public final static String IGNORE_THREAD_NAME_REGEX =
       "Binder:|RenderThread|hwuiTask|Jit thread pool worker|Instr:|JDWP|Profile Saver|main|" +
-      "queued-work-looper|InstrumentationConnectionThread|intel_svc_streamer_thread|" +
-      "ForkJoinPool|Metrics Background Reporting Thread";
+      "queued-work-looper|InstrumentationConnectionThread|intel_svc_streamer_thread|ForkJoinPool";
   public final static Matcher IGNORE_THREADS =
       Pattern.compile(IGNORE_THREAD_NAME_REGEX).matcher("");
 
diff --git a/test/925-threadgroups/expected-stdout.txt b/test/925-threadgroups/expected-stdout.txt
index 3cc36f2..9dfa37d 100644
--- a/test/925-threadgroups/expected-stdout.txt
+++ b/test/925-threadgroups/expected-stdout.txt
@@ -12,7 +12,7 @@
   [Thread[main,5,main]]
   []
 system:
-  [Thread[FinalizerDaemon,5,system], Thread[FinalizerWatchdogDaemon,5,system], Thread[HeapTaskDaemon,5,system], Thread[Metrics Background Reporting Thread,5,system], Thread[ReferenceQueueDaemon,5,system], Thread[Signal Catcher,5,system]]
+  [Thread[FinalizerDaemon,5,system], Thread[FinalizerWatchdogDaemon,5,system], Thread[HeapTaskDaemon,5,system], Thread[ReferenceQueueDaemon,5,system], Thread[Signal Catcher,5,system]]
   [java.lang.ThreadGroup[name=main,maxpri=10]]
 art.Test925$CustomThreadGroup[name=TEST GROUP,maxpri=10]
   java.lang.ThreadGroup[name=main,maxpri=10]
diff --git a/test/925-threadgroups/src/art/Test925.java b/test/925-threadgroups/src/art/Test925.java
index 78068ae..a63f4ce 100644
--- a/test/925-threadgroups/src/art/Test925.java
+++ b/test/925-threadgroups/src/art/Test925.java
@@ -47,7 +47,7 @@
     printThreadGroupInfo(curGroup);
     printThreadGroupInfo(rootGroup);
 
-    waitGroupChildren(rootGroup, 6 /* # daemons */, 30 /* timeout in seconds */);
+    waitGroupChildren(rootGroup, 5 /* # daemons */, 30 /* timeout in seconds */);
 
     checkChildren(curGroup);