有个代码优化的问题,假设现在项目有4个Activity依次跳转:A》B》C》D
有一些公共数据 B,C,D都需要,是用Intent依次传递,还是直接写成public static,或者更好的方法?
现在D界面进行了一些操作,希望返回到A时(注意:不是D直接跳到A,而是D,C,B回退到A)刷新界面。除了用标志位,更优的方法是?
来,畅所欲言吧
阿神2017-04-18 09:19:15
이벤트버스를 이용하는 도서관은 이벤트버스 이용을 권장합니다.
혜택:
전달된 데이터의 직렬화가 필요하지 않습니다
관찰자 패턴을 사용하여 분리
PHP中文网2017-04-18 09:19:15
1. 상수인 경우 상수 클래스를 작성하여 구체적으로 저장할 수 있습니다.
2. startActivityForResult를 통해 순차적으로 액티비티를 열 수 있습니다. 반환 시 Intent, requestCode, resultCode의 데이터를 기반으로 onActivity에서 판단하고 전달할 수 있지만 코드가 확실히 새로 고쳐지지 않습니다.
天蓬老师2017-04-18 09:19:15
요구 사항은 특별히 명확하지 않습니다. 시나리오는 로그인 및 등록 시나리오와 매우 유사합니다. 로그인 페이지를 클릭하고 비밀번호를 잊어버린 다음 작업을 완료하고 직접 돌아와 로그인을 완료합니다.
BC가 복귀 시 상호 작용 요구 사항이 없고 A에 대한 특별한 요구 사항이 없는 경우 launchMode
를 singleInstance
또는 singleTop
(처리 방식이 이전과 다름)로 직접 설정하고 Activity#onNewIntent(...)
해보자
상호작용 요구 사항이 있는 경우 레벨별로 돌아가시면 됩니다.
또한 EventBus 라이브러리를 직접 사용할 수도 있습니다(EventBus
, otto
, RxBus
모두 허용됩니다. LocalBroadcastManager
인 시나리오에서는 EventBus 사용을 고려할 수도 있지만 A를 고려해야 합니다). 차단된 경우 시스템 재활용 후 처리 시나리오.
p.s. 정적 전역 메서드가 필요하지 않습니다....