Android 응용 프로그램의 "번들"이란 무엇입니까?
Android 응용 프로그램에서 a는 무엇입니까?언제 사용해야 합니까?
번들은 일반적으로 다양한 Android 활동 간에 데이터를 전달하는 데 사용됩니다.전달할 값의 유형은 사용자에 따라 다르지만 번들은 모든 유형의 값을 보유하고 새 활동에 전달할 수 있습니다.
다음과 같이 사용할 수 있습니다.
Intent intent = new...
Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("myKey", AnyValue);
startActivity(intent);
다음을 수행하여 전달된 값을 얻을 수 있습니다.
Bundle extras = intent.getExtras();
String tmp = extras.getString("myKey");
자세한 내용은 다음 사이트에서 확인할 수 있습니다.
다음을 사용하여 활동 간에 데이터 전달Bundle그리고.Intent물건들.
처음 생성한 항목Bundle물건
Bundle b = new Bundle();
그런 다음 저장된 문자열 데이터를 연결합니다.anystring번들 키로"myname"
b.putString("myname", anystring);
이제 다음을 만듭니다.Intent물건
Intent in = new Intent(getApplicationContext(), secondActivity.class);
번들 개체 전달b의 목적으로
in.putExtras(b);
그리고 두 번째 활동을 시작합니다.
startActivity(in);
두 번째 활동에서는 첫 번째 활동에서 전달된 데이터에 액세스해야 합니다.
Intent in = getIntent();
이제 번들에서 데이터를 가져와야 합니다.
Bundle b = in.getExtras();
마지막으로 명명된 키와 연결된 문자열 데이터의 값을 가져옵니다."myname"
String s = b.getString("myname");
앞으로 자신에게 데이터를 전달하기 위해 번들이 활동에 사용된다는 점을 추가해야 합니다.
화면이 회전하거나 다른 활동이 시작될 때 방법protected void onSaveInstanceState(Bundle outState)호출되고 활동이 파괴됩니다.나중에 활동의 다른 인스턴스가 생성되고,public void onCreate(Bundle savedInstanceState)이 호출됩니다.활동의 첫 번째 인스턴스가 생성되면 번들이 null이고, 번들이 null이 아닐 경우 이전 작업에서 시작한 일부 비즈니스가 계속됩니다.
Android는 자동으로 텍스트를 텍스트 필드에 저장하지만 모든 것을 저장하지는 않으며 미묘한 버그가 나타날 수 있습니다.
하지만 가장 일반적인 반패턴은 다음과 같이 가정하는 것입니다.onCreate()초기화만 수행합니다.그것은 또한 국가를 회복시켜야 하기 때문에 잘못된 것입니다.
이 "회전 시 활동 다시 만들기" 동작을 사용하지 않도록 설정하는 옵션이 있지만, 재시작 관련 버그를 방지하지는 않으며 언급하기가 더 어려울 뿐입니다.
또한 활동이 파기될 때 통화가 보장되는 유일한 방법은 다음과 같습니다.onPause()(문서에서 활동 수명 주기 그래프를 참조하십시오.
업데이트: Android와 관련하여 "번들"이라는 용어와 전혀 관련이 없는 두 가지 의미가 있습니다.하나는 아래의 제 원래 답변에 자세히 나와 있습니다.다른 하나는 앱 번들입니다.이것은 Android 앱과 일부 추가 메타데이터가 포함된 최신 아카이브 파일 형식(.aap으로 끝남)입니다.애플리케이션 APK 파일 대신 앱 번들 파일을 업로드하여 Google Play를 통해 앱을 배포할 수 있습니다.앱 번들은 .apk 파일에 비해 특정 이점이 있지만 다른 앱 스토어(예: Amazon App Store)와 호환되지 않을 수 있습니다.이러한 장점은 제 원래 답변에 포함된 문서 링크에 설명되어 있습니다.
원답:
A Bundle자바와 매우 유사합니다.Map매핑할 개체String가치관의 열쇠활동과 다른 응용프로그램 구성요소 간에 정보를 전달하는 데 사용됩니다.또한 상태 정보를 캡처하고 복원하는 데 프레임워크에서 사용됩니다.
Android가 일반 구형을 사용하지 않는 이유Map이에 대한 목적은Map너무 유연하여 직렬화할 수 없는 개체(예: I/O 스트림)를 포함할 수 있습니다.BundleAPI는 번들의 내용이 직렬화될 수 있도록 번들에 추가할 수 있는 개체 유형을 제한합니다.Android 프레임워크는 이 속성에 의존합니다.
애플리케이션 기본 사항에 대한 설명서를 읽어보시기 바랍니다.이것은 무엇보다도 번들과 의도가 무엇인지, 그리고 그것들이 무엇에 사용되는지 설명합니다.
번들을 사용하여 한 활동에서 다른 활동으로 임의 데이터를 전송할 수 있습니다.의도를 브로드캐스트하면 관련 활동(및 기타 브로드캐스트 수신자)에 이 사실이 통보됩니다.인텐트는 번들을 포함할 수 있으므로 인텐트와 함께 추가 데이터를 보낼 수 있습니다.
번들은 키-값 매핑이므로 해시와 비슷하지만 단일 String/Foo 개체 매핑으로 엄격하게 제한되지는 않습니다.특정 데이터 유형만 "Parcelable"로 간주되며 번들 API에서 명시적으로 설명됩니다.
번들만 생성하면 됩니다.
Bundle simple_bundle=new Bundle();
simple_bundle.putString("item1","value1");
Intent i=new Intent(getApplicationContext(),this_is_the_next_class.class);
i.putExtras(simple_bundle);
startActivity(i);
"this_is_the_next_class.class"에서
당신은 다음과 같은 항목을 검색할 수 있습니다.
Intent receive_i=getIntent();
Bundle my_bundle_received=receive_i.getExtras();
my_bundle_received.get("item1");
Log.d("Value","--"+my_bundle_received.get("item1").toString);
번들은 활동 간에 데이터를 전달하는 데 사용됩니다.번들을 만들어 활동을 시작하는 의도로 전달하면 대상 활동에서 사용할 수 있습니다.
번들:- 문자열 값에서 다양한 구획 가능 유형으로의 매핑입니다.
번들은 일반적으로 안드로이드의 다양한 활동 간에 데이터를 전달하는 데 사용됩니다.
Pause()를 호출한 다음 Stop()을 호출하고 Stop()을 호출하여 OnPause()로 역순으로 설정합니다.
시스템이 이전 상태를 복원하는 데 사용하는 저장된 데이터를 "인스턴스 상태"라고 하며 번들 개체에 저장된 키-값 쌍의 모음입니다.
번들은 작업 간에 데이터를 공유하고 앱이 중지된 위치를 알 수 있도록 oncreate() 방법으로 앱 상태를 저장하는 데 사용됩니다.도움이 되었으면 좋겠습니다 :)
번들을 사용하면 의도된 개체의 도움을 받아 한 활동에서 다른 활동으로 데이터를 전송합니다. 번들은 모든 유형의 데이터를 보유합니다.
이제 두 활동 간에 데이터를 전달하는 번들을 만드는 방법에 대해 설명하겠습니다.
1단계: 첫 번째 활동 시
Bundle b=new Bundle();
b.putString("mkv",anystring);
Intent in=new Intent(getApplicationContext(),secondActivity.class);
in.putExtras(b);
startActivity(in);
2단계: 두 번째 활동
Intent in=getIntent();
Bundle b=in.getExtras();
String s=b.getString("mkv");
이것이 당신에게 유용하다고 생각합니다..........
번들은 서로 다른 두 구성 요소 간에 데이터를 전송할 뿐만 아니라 활동이 새 활동으로 파괴되기 전에 저장된 값을 복원하는 데 사용됩니다.
예를 들어 an의 텍스트와 같은.EditText위젯 또는 의 스크롤 위치ListView.
첫 번째 활동:
String food = (String)((Spinner)findViewById(R.id.food)).getSelectedItem();
RadioButton rb = (RadioButton) findViewById(R.id.rb);
Intent i = new Intent(this,secondActivity.class);
i.putExtra("food",food);
i.putExtra("rb",rb.isChecked());
두 번째 활동:
String food = getIntent().getExtras().getString("food");
Boolean rb = getIntent().getExtras().getBoolean("rb");
언급URL : https://stackoverflow.com/questions/4999991/what-is-a-bundle-in-an-android-application
'programing' 카테고리의 다른 글
| 프로젝트는 모든 파일을 나열하거나 '포함' 패턴을 사용해야 합니다. (0) | 2023.08.15 |
|---|---|
| IE9 JavaScript 오류: SCRIPT5007: 'ui' 속성의 값을 가져올 수 없음: 개체가 null이거나 정의되지 않았습니다. (0) | 2023.08.10 |
| XMLHttpRequest responseType = "json"에서 SYSTON_ERR: DOM 예외 12 오류가 발생함 (0) | 2023.08.10 |
| Android 왼쪽에서 오른쪽으로 슬라이드 애니메이션 (0) | 2023.08.10 |
| Panda는 알파벳 순서에 따라 열을 다시 정렬하는 Excel에 씁니다. (0) | 2023.08.10 |