title: Initialize LiveData later in ViewModel
body: <p>Having recently opted to use LiveData, I encounter a problem when initializing for a variable.
  I have 2 Activities (I don't use Navigation but that's not the point) :</p>
  
  <ul>
  <li>One is a list with items fetch by API</li>
  <li>The other is a Detail Activity for the selected item in the previous list</li>
  </ul>
  
  <p>The problem is that I need to be able to consult the Detail Activity in creation mode, i.e. in my ViewModel the object must not be retrieved via Retrofit but created via a new instantiation.</p>
  
  <p>This is how it is done for now :</p>
  
  <p><strong>Detail Activity :</strong></p>
  
  <pre><code>override fun onCreate(savedInstanceState: Bundle?) {
          super.onCreate(savedInstanceState)
          setContentView(R.layout.details)
  
          val isNew = intent.extras?.getBoolean("new")
          if (isNew) {
              // Trigger lazy property
              viewModel.value
          } else {
              viewModel.getDetails()
          }
  
          presenter.value.observe(this, Observer { value -&gt;
              value?.let {
                  displayDetails(it)
              }
          })
      }
  </code></pre>
  
  <p><strong>ViewModel</strong></p>
  
  <pre><code>class DetailsPresenter(private val repository: WorkOrderRepository)
      : ViewModel(), LifecycleObserver {
  
      val value: MutableLiveData&lt;Details&gt; by lazy { MutableLiveData(Details("")) }
  
      fun getDetails() {
          RetrofitClient.getDetails()
          .onSuccess {
              this.value.value = it
          }
  
      }
  
  }
  </code></pre>
  
  <p>The problem with this method is that my displayDetails() method is called twice.
  One for lazy initialization and the other in case I'm looking at an existing item.</p>
  
  <p>How can i initialize LiveData later in code ?</p>