Android рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдмрдЪрдд рд░рд╛рдЬреНрдп

рдЖрдЬ рдореИрдВ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рд░рд╛рдЬреНрдп рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдпрд╣ рдПрдХ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рдорд╛рд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрдХреНрд░рд╛рдордХ рдКрд░реНрдЬрд╛ рдмрдЪрдд - рд╣реЗрд▓реЛ рдУрд░рд┐рдпреЛ рдХреА рд╢реБрд░реВрдЖрдд рдХреЗ рд╕рд╛рде рдФрд░ рдЕрдзрд┐рдХ рдЬрд░реВрд░реА рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд┐рд╕реА рдиреЗ рдлреЛрди рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд░рджреНрдж рдирд╣реАрдВ рдХрд┐рдпрд╛: рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕, рднрд╛рд╖рд╛ рдкрд░рд┐рд╡рд░реНрддрди, рдЖрджрд┐ред рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЦреЛрд▓рдиреЗ рдФрд░ рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕реЗ рдмрдЪрд╛рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдУрд╣, рдпрд╣ onSaveInstanceState ред

onSaveInstanceState

рдЙрд╕рдиреЗ рд╣рдореЗрдВ рдХрд┐рддрдирд╛ рджрд░реНрдж рджрд┐рдпрд╛ред

рдореИрдВ рдмрд╛рдж рдореЗрдВ рдХреНрд▓реАрди рдПрдХреНрдЯреЗрдХреНрдЪрд░ рдФрд░ рдбреИрдЧрд░ 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ , рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд░рд╣реЗрдВ :)

рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдерд┐рддрд┐ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  1. рд╣реЛрд╕реНрдЯ (рдЧрддрд┐рд╡рд┐рдзрд┐, рдЯреБрдХрдбрд╝рд╛) рдХреЗ onSaveInstanceState рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХ рдбреЗрдЯрд╛ рд╕рд╣реЗрдЬреЗрдВ - рдЬреИрд╕реЗ рдкреГрд╖реНрда рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдЬреЛ рдХреБрдЫ рднреАред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдФрд░ рдкреГрд╖реНрда рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред
  2. рдкреНрд░рд╛рдкреНрдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (SharedPreference, рдбреЗрдЯрд╛рдмреЗрд╕) рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред
  3. рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЛ рдмрдЪрд╛рдиреЗ рдФрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдЯрд┐рди рдЯреБрдХрдбрд╝реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдореЗрдВ рдпреВрдЖрдИ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рд╡рд░реНрддрдорд╛рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛? рд╕рд░рд▓рддрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд▓реЙрдЧрд┐рди рдкреГрд╖реНрда рд╣реИ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ, рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрд╕реЗ рдПрдХ рдЗрдирдХрдорд┐рдВрдЧ рдХреЙрд▓ рдорд┐рд▓рддреА рд╣реИред рд╣рдорд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реНрдпрд╡рд╕реНрдерд╛ рдЙрд╕реЗ рдорд╛рд░ рджреЗрддреА рд╣реИред рдбрд░рд╛рд╡рдирд╛ рд▓рдЧрддрд╛ рд╣реИ, рд╣реИ рдирд╛?)

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрд╡реЗрджрди рдкрд░ рд▓реМрдЯрддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рдХреНрдпрд╛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП? рдХрдо рд╕реЗ рдХрдо, рд▓реЙрдЧрд┐рди рдСрдкрд░реЗрд╢рди рдЬрд╛рд░реА рд░рдЦрдирд╛ рдФрд░ рдкреНрд░рдЧрддрд┐ рджрд┐рдЦрд╛рдирд╛ред рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реЛрд╕реНрдЯ рдХреЗ рдСрдирдбрд╕реНрдЯреНрд░реЛ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░реАрди рдкрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рд░рд╛рдЬреНрдп рдорд╢реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпреИрдВрдбреЗрдХреНрд╕ рд╕реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд░рд┐рдкреЛрд░реНрдЯ ред рдЙрд╕реА рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЗрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдкрд░ рдЕрдкрдиреЗ рдЪрдмрд╛рдП рдЧрдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

рдЕрдм рдереЛрдбрд╝рд╛ рдХреЛрдб:

BaseState

public interface BaseState<VIEW extends BaseView, OWNER extends BaseOwner> extends Parcelable{ /** * Get name * * @return name */ @NonNull String getName(); /** * Enter to state * * @param aView view */ void onEnter(@NonNull VIEW aView); /** * Exit from state */ void onExit(); /** * Return to next state */ void forward(); /** * Return to previous state */ void back(); /** * Invalidate view * * @param aView view */ void invalidateView(@NonNull VIEW aView); /** * Get owner * * @return owner */ @NonNull OWNER getOwner(); /** * Set owner * * @param aOwner owner */ void setOwner(@NonNull OWNER aOwner); } 

BaseOwner

 public interface BaseOwner<VIEW extends BaseView, STATE extends BaseState> extends BasePresenter<VIEW>{ /** * Set state * * @param aState state */ void setState(@NonNull STATE aState); } 

BaseStateImpl

 public abstract class BaseStateImpl<VIEW extends BaseView, OWNER extends BaseOwner> implements BaseState<VIEW, OWNER>{ private OWNER mOwner; @NonNull @Override public String getName(){ return getClass().getName(); } @Override public void onEnter(@NonNull final VIEW aView){ Timber.d( getName()+" onEnter"); //depend from realization } @Override public void onExit(){ Timber.d(getName()+" onExit"); //depend from realization } @Override public void forward(){ Timber.d(getName()+" forward"); onExit(); //depend from realization } @Override public void back(){ Timber.d(getName()+" back"); onExit(); //depend from realization } @Override public void invalidateView(@NonNull final VIEW aView){ Timber.d(getName()+" invalidateView"); //depend from realization } @NonNull @Override public OWNER getOwner(){ return mOwner; } @Override public void setOwner(@NonNull final OWNER aOwner){ mOwner = aOwner; } 

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░рд╛рдЬреНрдп рдХрд╛ рдорд╛рд▓рд┐рдХ рдПрдХ рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рд╣реЛрдЧрд╛ред

рд▓реЙрдЧрд┐рди рдкреЗрдЬ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рддреАрди рдЕрджреНрд╡рд┐рддреАрдп рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

LoginInitState , LoginProgressingState , LoginCompleteState ред

рддреЛ, рдЕрдм рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдЗрди рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

LoginInitState рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЦреЗрддреЛрдВ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рд╣реИ рдФрд░ рд╕рдлрд▓ рд╕рддреНрдпрд╛рдкрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓реЙрдЧрд┐рди рдмрдЯрди рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд▓реЙрдЧ рдЗрди рдЕрдиреБрд░реЛрдз LoginProgressingState рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдПрдХ рдЯреЛрдХрди рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрд╡реЗрджрди рдХреА рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

LoginCompleteState рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рддрд╛ рд╣реИред

рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ, рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд░реЗрдЦ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рд▓реЙрдЧрд┐рди рд╕реНрдерд┐рддрд┐ рдЖрд░реЗрдЦ

LoginProgressingState рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ рдпрджрд┐ рд▓реЙрдЧрд┐рди рдСрдкрд░реЗрд╢рди LoginCompleteState рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ LoginInitState рд╕реНрдерд┐рддрд┐ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рд╣рдорд╛рд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд┐рдЧрдбрд╝рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдХреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рдХ рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИред рд╣рдореЗрдВ рдорд╛рдирдХ android рддрдВрддреНрд░ onSaveInstanceState рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рд▓реЙрдЧрд┐рди рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕рд▓реЗрдмрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдмреЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕ рдмреЗрд╕рд╕реНрдЯреЗрдЯ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЕрдЧрд▓рд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИ, рдЗрд╕ рд░рд╛рдЬреНрдп рдХреЛ рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рд╕реЗ рд╣рдорд╛рд░реЗ рдореЗрдЬрдмрд╛рди рддрдХ рдХреИрд╕реЗ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░реЗрдВ? рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдореЗрдЬрдмрд╛рди рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рд╕реЗ рдкреВрдЫрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рд▓рд┐рдП рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рдЯреБрдХрдбрд╝реЗ рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддреЗ рд╣реИрдВред рд╣рдо рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 public interface Cache{ /** * Save cache data * * @param aData data */ void saveCacheData(@Nullable Parcelable aData); @Nullable Parcelable getCacheData(); /** * Check that cache exist * * @return true if cache exist */ boolean isCacheExist(); } 

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдХреИрд╢ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдЗрдВрдЯрд░реЗрдХреНрдЯрд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдХреИрд╢ рдХреА рддрд░рд╣ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдХреИрд╢ рдореЗрдВ рд░рд╛рдЬреНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯреАрдЧреНрд░реЗрдЯрд░ рдореЗрдВ рддрд░реАрдХреЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЕрдм, рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣рд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде, рд╣рдо рд░рд╛рдЬреНрдп рдХреЛ рдЗрдВрдЯрд░реЗрдХреНрдЯрд░ рдореЗрдВ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрдВрдЯрд░реЗрдХреНрдЯрд░ рдХреЛ рдХреИрд╢ рдореЗрдВ рд╕рд╣реЗрдЬрддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рддрд╛рд░реНрдХрд┐рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рд╣реЛрд╕реНрдЯ рдкрд╣рд▓реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рд╕реНрддреЛрддрд╛ рд░рд╛рдЬреНрдп рдХреЛ рдЗрдВрдЯрд░реИрдХреНрдЯрд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдХреИрд╢ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдореЗрдВ рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рд╡рд┐рдзрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

 @Override public void setState(@NonNull final LoginBaseState aState){ mState.onExit(); mState = aState; clearDisposables(); mState.setOwner(this); mState.onEnter(getView()); mInteractor.setState(mState); } 

рдореИрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ - рдХреИрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рди рдХреЗрд╡рд▓ рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдПред рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрдирд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдирд┐рдкреЗрдЯ рдХреИрд╢ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдЖрд▓реЗрдЦ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдкреНрд░рд╢реНрди рдХреА рд╕реНрдерд┐рддрд┐ рдмрд╣реБрдд рд╣реА рдЕрддрд┐рд░рдВрдЬрд┐рдд рд╣реИред рдЬреАрд╡рди рдореЗрдВ рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рддреАрди рдкреЗрдЬ рд╕рдВрдпреБрдХреНрдд рдереЗ: рд▓реЙрдЧрд┐рди, рдкрдВрдЬреАрдХрд░рдг, рдкрд╛рд╕рд╡рд░реНрдб рд░рд┐рдХрд╡рд░реАред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░рд╛рдЬреНрдп рдЖрд░реЗрдЦ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдерд╛:

рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд░рд╛рдЬреНрдп рдЖрд░реЗрдЦ

рдирддреАрдЬрддрди, рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд░рд╛рдЬреНрдп рдкреИрдЯрд░реНрди рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рдкрдардиреАрдп рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред рдФрд░ рдЬреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рд╡рд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред

рдкреВрд░реНрдг рдХреЛрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

Source: https://habr.com/ru/post/hi420023/


All Articles