title: Required lifecycle owner found Activity
body: <p>I am using android library androidx.appcompat:appcompat:1.0.2. Working on a sample of codelabs work manager. I need to get live data from ViewModel and I am using this</p>
  
  <pre><code>    mViewModel!!.getOutputWorkInfo()?.observe(this, Observer&lt;List&lt;WorkInfo&gt;&gt; {
   })
  </code></pre>
  
  <p>but <strong>this</strong> variable shows error - 
  <strong>Type mismatch. Required:Lifecycle Owner. Found:BlurActivity</strong></p>
  
  <p>I googled all says no need to extend lifecycle owner, by default appcompact activity implements lifecycle owner. </p>
  
  <p>And I also worked this in another project, no issues found. I don't know why I am getting this error in this project.</p>
  
  <p>`</p>
  
  <pre><code>import android.os.Bundle
  import android.view.View
  import android.widget.Button
  import android.widget.ImageView
  import android.widget.ProgressBar
  import android.widget.RadioGroup
  
  import com.bumptech.glide.Glide
  
  import androidx.appcompat.app.AppCompatActivity
  import androidx.lifecycle.Observer
  import androidx.lifecycle.ViewModelProviders
  import androidx.work.WorkInfo
  
  class BlurActivity : AppCompatActivity() {
  
      private var mViewModel: BlurViewModel? = null
      private var mImageView: ImageView? = null
      private var mProgressBar: ProgressBar? = null
      private var mGoButton: Button? = null
      private var mOutputButton: Button? = null
      private var mCancelButton: Button? = null
  
      /**
       * Get the blur level from the radio button as an integer
       * @return Integer representing the amount of times to blur the image
       */
      private val blurLevel: Int
          get() {
              val radioGroup = findViewById&lt;RadioGroup&gt;(R.id.radio_blur_group)
  
              return when (radioGroup.checkedRadioButtonId) {
                  R.id.radio_blur_lv_1 -&gt;  1
                  R.id.radio_blur_lv_2 -&gt;  2
                  R.id.radio_blur_lv_3 -&gt;  3
                  else -&gt; 1
              }
          }
  
  
      override fun onCreate(savedInstanceState: Bundle?) {
          super.onCreate(savedInstanceState)
          setContentView(R.layout.activity_blur)
  
          // Get the ViewModel
          mViewModel = ViewModelProviders.of(this).get(BlurViewModel::class.java)
  
          // Get all of the Views
          mImageView = findViewById(R.id.image_view)
          mProgressBar = findViewById(R.id.progress_bar)
          mGoButton = findViewById(R.id.go_button)
          mOutputButton = findViewById(R.id.see_file_button)
          mCancelButton = findViewById(R.id.cancel_button)
  
          // Image uri should be stored in the ViewModel; put it there then display
          val intent = intent
          val imageUriExtra = intent.getStringExtra(Constants.KEY_IMAGE_URI)
          mViewModel!!.setImageUri(imageUriExtra)
          if (mViewModel!!.imageUri != null) {
              Glide.with(this).load(mViewModel!!.imageUri).into(mImageView!!)
          }
  
          mViewModel!!.getOutputWorkInfo()?.observe(this, Observer&lt;List&lt;WorkInfo&gt;&gt; {
              // If there are no matching work info, do nothing
              if (it == null || it.isEmpty()) return@Observer
  
              // We only care about the first output status.
              // Every continuation has only one worker tagged TAG_OUTPUT
              val workInfo = it[0]
  
              val finished = workInfo.state.isFinished
              if (!finished) showWorkInProgress() else showWorkFinished()
          })
  
  
          // Setup blur image file button
          mGoButton!!.setOnClickListener { view -&gt; mViewModel!!.applyBlur(blurLevel) }
      }
  
      /**
       * Shows and hides views for when the Activity is processing an image
       */
      private fun showWorkInProgress() {
          mProgressBar!!.visibility = View.VISIBLE
          mCancelButton!!.visibility = View.VISIBLE
          mGoButton!!.visibility = View.GONE
          mOutputButton!!.visibility = View.GONE
      }
  
      /**
       * Shows and hides views for when the Activity is done processing an image
       */
      private fun showWorkFinished() {
          mProgressBar!!.visibility = View.GONE
          mCancelButton!!.visibility = View.GONE
          mGoButton!!.visibility = View.VISIBLE
      }
  }
  </code></pre>
  
  <p>`</p>