android - 实际项目中Activity传递数据最佳实践是?
巴扎黑
巴扎黑 2017-04-18 09:17:15
0
3
434

有个代码优化的问题,假设现在项目有4个Activity依次跳转:A》B》C》D

  1. 有一些公共数据 B,C,D都需要,是用Intent依次传递,还是直接写成public static,或者更好的方法?

  2. 现在D界面进行了一些操作,希望返回到A时(注意:不是D直接跳到A,而是D,C,B回退到A)刷新界面。除了用标志位,更优的方法是?

来,畅所欲言吧

巴扎黑
巴扎黑

모든 응답(3)
阿神

이벤트버스를 이용하는 도서관은 이벤트버스 이용을 권장합니다.
혜택:

  1. 전달된 데이터의 직렬화가 필요하지 않습니다

  2. 관찰자 패턴을 사용하여 분리

Ty80

1. 상수인 경우 상수 클래스를 작성하여 구체적으로 저장할 수 있습니다.
2. startActivityForResult를 통해 순차적으로 액티비티를 열 수 있습니다. 반환 시 Intent, requestCode, resultCode의 데이터를 기반으로 onActivity에서 판단하고 전달할 수 있지만 코드가 확실히 새로 고쳐지지 않습니다.

Peter_Zhu

요구 사항은 특별히 명확하지 않습니다. 시나리오는 로그인 및 등록 시나리오와 매우 유사합니다. 로그인 페이지를 클릭하고 비밀번호를 잊어버린 다음 작업을 완료하고 직접 돌아와 로그인을 완료합니다.

  1. BC가 복귀 시 상호 작용 요구 사항이 없고 A에 대한 특별한 요구 사항이 없는 경우 launchModesingleInstance 또는 singleTop(처리 방식이 이전과 다름)로 직접 설정하고 Activity#onNewIntent(...)해보자

  2. 상호작용 요구 사항이 있는 경우 레벨별로 돌아가시면 됩니다.

또한 EventBus 라이브러리를 직접 사용할 수도 있습니다(EventBus, otto, RxBus 모두 허용됩니다. LocalBroadcastManager인 시나리오에서는 EventBus 사용을 고려할 수도 있지만 A를 고려해야 합니다). 차단된 경우 시스템 재활용 후 처리 시나리오.

p.s. 정적 전역 메서드가 필요하지 않습니다....

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!