Нет правильного пути, если код чистый и легко читаемый / понятный.Но если вы посмотрите на примеры, которые Android дает , они показывают методы, аналогичные тем, которые вы опубликовали.
1) Один из способов - создать объект с методами, названными жизненным циклом Android.(Который вы упомянули).
class MyLocationListener {
public MyLocationListener(Context context, Callback callback) {
// ...
}
void start() {
// connect to system location service
}
void stop() {
// disconnect from system location service
}
}
Каждая функция вызывается вручную в владельце жизненного цикла следующим образом:
@Override
public void onStart() {
super.onStart();
myLocationListener.start();
// manage other components that need to respond
// to the activity lifecycle
}
@Override
public void onStop() {
super.onStop();
myLocationListener.stop();
// manage other components that need to respond
// to the activity lifecycle
}
2) Однако, если вы хотите назвать методы по их действиямВы можете сопровождать их методы с помощью аннотации OnLifecycleEvent , которая была захватывающе представлена нам в Android Jetpack !Например,
public class MyLocationListener implements LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
public void connectListener() {
...
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
public void disconnectListener() {
...
}
}
Теперь эти методы вызываются автоматически с помощью LifecycleObserver , который может наблюдать LifecycleOwner :
myLifecycleOwner.getLifecycle().addObserver(new MyLocationListener());
LifecycleOwner
обычно представляет собой Активность или Фрагмент .Вам решать, какой из них вы выберете, однако я предпочитаю LifecycleObserver
, так как он требует меньше кода, что, я думаю, делает его более чистым.
Если вас интересуют хорошие практики Android и несколько советов, которые помогут вам в этомКстати, есть несколько хороших страниц, которые я бы порекомендовал:
- лучшие практики Android
- советы и хитрости Android
- в Android должны быть библиотеки