title: Kotlin CoroutineScope can't cancel in android views
body: <p>For example,this view.When the <code>onDetachedFromWindow</code> invoke the scope is cancelled,but the launched job is still active.</p>
  
  <pre><code>class TestView : FrameLayout,CoroutineScope {
      val TAG = "TestView"
      override val coroutineContext: CoroutineContext
          get() = Dispatchers.Main + Job()
  
      constructor(context: Context) : super(context)
      constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
          launch {
              while (true) {
                  Log.i(TAG,"is in launch coroutine....${coroutineContext} ${this@TestView.coroutineContext}")
                  delay(1000)
              }
          }
      }
      constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
          context,
          attrs,
          defStyleAttr
      )
  
      override fun onDetachedFromWindow() {
          super.onDetachedFromWindow()
          cancel()
          Log.i(TAG,"onDetachedFromWindow")
      }
  }
  </code></pre>
  
  <p>the log is </p>
  
  <pre><code>2019-09-19 21:32:26.652 22912-22912/com.ymr.myapplication I/TestView: is in launch coroutine....[StandaloneCoroutine{Active}@7f9d20f, Main] [JobImpl{Active}@2f3fde2, Main]
  2019-09-19 21:32:27.655 22912-22912/com.ymr.myapplication I/TestView: is in launch coroutine....[StandaloneCoroutine{Active}@7f9d20f, Main] [JobImpl{Active}@80a2573, Main]
  2019-09-19 21:32:28.656 22912-22912/com.ymr.myapplication I/TestView: is in launch coroutine....[StandaloneCoroutine{Active}@7f9d20f, Main] [JobImpl{Active}@dad2c30, Main]
  2019-09-19 21:32:29.649 22912-22912/com.ymr.myapplication I/TestView: onDetachedFromWindow
  2019-09-19 21:32:29.665 22912-22912/com.ymr.myapplication I/TestView: is in launch coroutine....[StandaloneCoroutine{Active}@7f9d20f, Main] [JobImpl{Active}@dab39f4, Main]
  2019-09-19 21:32:30.666 22912-22912/com.ymr.myapplication I/TestView: is in launch coroutine....[StandaloneCoroutine{Active}@7f9d20f, Main] [JobImpl{Active}@448351d, Main]
  2019-09-19 21:32:31.668 22912-22912/com.ymr.myapplication I/TestView: is in launch coroutine....[StandaloneCoroutine{Active}@7f9d20f, Main] [JobImpl{Active}@45ba392, Main]
  2019-09-19 21:32:32.669 22912-22912/com.ymr.myapplication I/TestView: is in launch coroutine....[StandaloneCoroutine{Active}@7f9d20f, Main] [JobImpl{Active}@bc75163, Main]
  </code></pre>
  
  <p>So why can't cancel the scope launched jobs?</p>