ProgramingTip

Android에서 직접 의도 putExtra () Bundle을 사용할 때의 이점 대신

bestdevel 2020. 10. 27. 23:03
반응형

Android에서 직접 의도 putExtra () Bundle을 사용할 때의 이점 대신


내 안드로이드 응용 프로그램에서 나는 항상 어떤 수의 값을 새로운 전달하기 위해 클래스의 직접 putExtra()함수를 사용 Intent하고 Activity있습니다.
이렇게 :

Intent i = new Intent(this, MyActivity.class);
i.putExtra(ID_EXTRA1, "1");
i.putExtra(ID_EXTRA2, "111");
startActivity(i);

나는 Bundle안드로이드 에 대해 알고 있고 사람들이 Bundle값을 새로 전달하는 데 사용 하는 것을 보았습니다 Activity.
이렇게 :

Intent intent = new Intent(this, MyActivity.class);
Bundle extras = new Bundle();
extras.putString("EXTRA_USERNAME","my_username");
extras.putString("EXTRA_PASSWORD","my_password");
intent.putExtras(extras);
startActivity(intent);

여기에 두 가지 의심이 있습니다. 을 값 직접 넣어 전달할 수 난 웬지 -
왜 사용해야 합니까? 직접 대신 사용 하는 것의 장점은 무엇입니까?BundleActivityIntent
BundleIntent putExtra()


별 차이가 없다. 추가를 사용하는 코드는 약간 더 무겁고 (실용적인 응용 프로그램에서는 차이가 없음) 관리하기 약간 더 약간 더 일반적입니다.

언젠가 인 텐트 내부에 정보를 보내기 전에 데이터를 데이터베이스에 구축 화하려는 경우 다음 화입니다. 인 텐트에 PendingBundle에 피드 할 수있는 것이 많은 것이 조금 더 깔끔합니다. 하나의 개체로.

[최신 정보]

설명 (다른 답변으로 인해).

엑스트라 가 휴대 할 수있는 추가 번들이므로 번들을 사용하거나 사용하지 않는을 구석으로 사이에 대안이 없습니다 각 의도. 어느 쪽이든을 사용하고 있습니다.

처음 사용할 때 Intent 내부 putExtramExtras녹음이 초기화되고 다음의 모든 putExtra가 여기에 있습니다. (특정 종류의 버그를 피하기 위해 의도적으로 사용할 것입니다)

putExtras 번들을 의도 넣지에 않습니다 . 대신 현재 인 생성로 복사합니다 putExtra. (하나가 아닌 두 가지 많은 비용을 지불합니다).

핵심은-를 사용하는 경우 putExtras여전히 인 텐트 내부의 실제 실제적인 액세스 할 수 없습니다. 그러나-당신은 그것으로 할 수있는 다른 무엇이든에 대한 사본을 가지고 있습니다. (유사한 인 텐트를 많이 사용하는 경우) 다른 인 텐트로 복사하기 위해 주변을 유지하는 것과 같습니다.


추가 장점 : 데이터가 번들에 여러 개의 텐트를 통해 전송할 수 있습니다. (이 경우에만 여러 인 텐트가 전송됩니다).


더 쉽게 분리 할 수있는 것들이 처리하는 코드와 UI 코드를 분리 할 수 ​​있습니다.

대부분의 경우 가능한 가장 간단한 양의 데이터를 전송하기를 원할 것입니다 쓸모가 없습니다 (보통 절차 몇 개, ID ...).


은 참조 할 당신 수 있습니다 또한 .

하나의 많은로 여러 데이터 또는 여러 데이터를 통해 보낼 수 있습니다. 또는 다른 방법은 PutExtra ()의 여러 문을 추가하는 것입니다.

그리고 내 지식에 따라 중요한 차이는 없습니다.

참고 URL : https://stackoverflow.com/questions/15243798/advantages-of-using-bundle-instead-of-direct-intent-putextra-in-android

반응형