我有這樣的擴展AppCompactActivity的活動視圖setSupportActionBar,並在onCreate
方法我設置好的以通常的方式Toolbar
使用setSupportActionBar
方法:如何在擴展LifecycleActivity
public class StepMasterActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_step_master);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);`
}
}
但現在我有一個ViewModel組件並在作爲此活動的子代的片段之間共享數據並管理生命週期我必須在Activity中獲取此組件,因此我將此擴展爲LifecycleActivity。
public class StepMasterActivity extends LifecycleActivity {
@Override
public class StepMasterActivity extends LifecycleActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_step_master);
// setToolbar();
SharedViewModel sharedViewModel = ViewModelProviders.of(this).get(SharedViewModel.class);
}
}
但我注意到LifecycleActivity與AppCompatActivity無關,都不是FragmentActivity。
public class LifecycleActivity extends FragmentActivity implements LifecycleRegistryOwner {
private final LifecycleRegistry mRegistry = new LifecycleRegistry(this);
public LifecycleActivity() {
}
public LifecycleRegistry getLifecycle() {
return this.mRegistry;
}
}
我做錯了什麼?
LifecycleRegistry就是這樣嗎?所以我可以創建自定義的「LifecycleRegistryOwner」,而不是使片段擴展LifecycleFragment? (現在) – alexpfx
@alexpfx:正確。再次引用[文檔](https://developer.android.com/topic/libraries/architecture/lifecycle.html#implementing-lco):「任何自定義片段或活動都可以通過實現構建而轉化爲LifecycleOwner -in LifecycleRegistryOwner接口(而不是擴展LifecycleFragment或LifecycleActivity)。「 – CommonsWare
@ superarts.org:我不明白這個問題有什麼關係,更不用說這個答案了。請提出一個單獨的問題,在哪裏提供[mcve]並更詳細地解釋您的問題。 – CommonsWare