2016-07-13 2 views
2

새로운 안드로이드 개발자로서 하나의 활동에서 단편이나 단편으로 데이터를 전달하는 것이 쓰기에는 너무 많은 코드 인 것 같습니다. Otto 라이브러리는 데이터 전달의 의도를 대체 할 수 있습니까? 그것은 안드로이드 애플 리케이션에서 하나의 유일한 데이터 전달 메커니즘으로 사용할 수 있습니까?사각형의 의도를 의도의 대체로 사용할 수 있습니까?

답변

2

나는 그것이 가능할 수도 있다고 생각하지만, 유지해야 할 코드는 아닐 것이다.

메시지 버스의 사용은 메시지의 보낸 사람과받는 사람이 있고 동시에 활성화되어 있다고 가정합니다. 인 텐트를 통해 하나의 활동에서 다른 활동으로 전환하는 경우 대상 활동은 일반적으로 존재하지 않으며 존재하지 않으면 활성 상태가 아닙니다. 따라서이 모드에서는 인 텐트를 버스 메시지로 대체 할 수 없습니다.

Otto는이를 수행하는 데 사용할 수있는 "제작자"를 지원하지만 실제로는 제안하지 않습니다.

활동간에 많은 데이터를 전달해야하는 경우 디자인 문제가있을 수 있습니다. 이는 일반적으로 적절한 별도의 데이터 모델을 보유하는 대신 활동에 모든 것을 채웠다는 것을 나타냅니다.

+0

그냥 호기심, 리누스 토발즈와의 관계가 있습니까? –

+0

당신의 도움이 답변을 주셔서 감사합니다. 귀하의 답변에서, 나는 오또와 같은 일을 할 수있을 것이라고 이해하지만,이, 나는 유지하기 어려울 것이라고 몇 가지 코드를 작성해야합니다. 사실 나는 안드로이드에 이러한 데이터 전달 및 번들 문제에 대한 단단한 patten을 찾지 못했습니다. 액티비티와 마찬가지로 액티비티도 한 가지 방법이지만 장치 회전의 경우 savedInstanceState를 관리해야하며 조각을 데이터로 보내는 문제가 있습니다. 이러한 모든 데이터 전달을 통해 우리를 인도 해 줄 자원이 있습니까? @GreyBeardedGeek – rat

+0

당신이 찾을 가능성이있는 유일한 견고한 자원은 인 텐트를 통해 데이터를 전달하는 방법에 관한 공식 Android 문서입니다. Otto for Activity를 성공적으로 사용했습니다. <-> Fragment Communication (Fragment Lifecycle을 처리하는 데 도움이 됨) 및 모든 통신 당사자가 버스에 등록 된 것으로 간주되는 다른 통신 (입력시 행동 준비), 또는 등록되지 않았습니다. 한 번에 하나만 활성화 (버스에 등록해야 함)하므로 Activity <-> 활동입니다. – GreyBeardedGeek

2

데이터 전달의 의도를 대체하기 위해 otto 라이브러리를 사용할 수 있습니까?
예, 데이터 전달을위한 수단으로 otto (또는 다른 이벤트 버스)를 사용할 수 있습니다.

안드로이드 앱에서 유일한 데이터 전달 메커니즘으로 사용할 수 있습니까?
예 또는 아니오 수 있습니다. 너의 필요성에 달렸어. 액티비티와 프래그먼트로 작업하는 경우 인 텐트와 번들을 사용합니다. 그러나 액티비티와 프래그먼트 사이에 communicate을 원할 때 otto를 사용할 수 있습니다.