Как можно использовать множественное наследование в андроид активности? - PullRequest
0 голосов
/ 16 октября 2019

Я хочу использовать RxLifeCycle, потому что compose (bindToLifeCycle), но я уже использую DaggerAppCompatActivity.

bindToLifeCycle необходимо для RxAppCompactActivity. Однако Java не поддерживает множественное наследование. Как я могу решить?

BaseActivity

public class BaseActivity extends DaggerAppCompatActivity{ }

MainActivity

public class MainActivity extends BaseActivity { }

Я хочу

public class BaseActivity extends DaggerAppCompatActivity, RxAppCompactActivity { }

, но этот код не может использовать.

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

Если вы проверите реализацию DaggerAppCompatActivity, нажав Ctrl+B на нее в вашей IDE, вы увидите, что единственное отличие - это вызов AndroidInjection.inject(this) до super.onCreate().

. вы можете расширить RxLifecycleActivity и написать AndroidInjection.inject(this) до super.onCreate(), и вы получите эквивалентные результаты.

Вы также можете скопировать содержимое из RxLifecycleActivity в вашу BaseActivity. Вы можете сделать оба. Это зависит от вас на самом деле. Просто скопируйте реализацию этих базовых классов в свой собственный класс, и она будет работать.

0 голосов
/ 16 октября 2019

Java не поддерживает множественное наследование. Хотя можно использовать интерфейс и реализовать несколько интерфейсов в вашем классе.

учебник для интерфейса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...