2012-04-11 4 views
2

저는 안드로이드 프로그래밍에 익숙하지 않고 다음과 같은 질문을 가지고 있습니다.호출 된 액티비티에서 가치 전달하기

다른 활동 (화면)을 호출하는 활동 (화면)이 있습니다. intext를 만들고 putExtras를 사용하여 Activity2에서 값을 다시 전달할 수 있습니다. 그런 다음 주 활동 1로 돌아 왔을 때 (onActivityResult) 반환 할 인 텐트에서 문자열 값 쌍을 검색 할 수 있습니다.

질문 1 Activity2가 완료되면 가비지 컬렉터가 시작될 때 의도 한 I 의도가 해제 될 가능성이 있습니까? 또는 안드로이드는 앱이 종료 될 때까지 그런 메모리를 정리하지 않습니다.

질문 2) 나는 다음 "..... 새로운 의도의"을 다시 activity2에 다시 가서하면 더 많은 메모리를 할당한다는 것이다 그래서 경우는 "

질문 3 비효율적? - 거기에 호출 활동에라는 활동에서 다시 데이터를 전달하거나 등 유일한 방법 인 텐트를 사용하고 putExtras되어 더 좋은 방법?

이 감사 토니

답변

0
당신이 활동 사이를 통과하려고 얼마나 많은 데이터

? 바이트 , 킬로바이트 또는 메가 바이트?

유일한 바이트 또는 일부 킬로바이트 다음이 내 대답 경우 :

  1. 가 작업 네 더 많은 메모리가 할당됩니다
  2. 을 할 것입니다 쓰레기 collector.It에 대해 걱정하지 마십시오. 아니, 비효율적이지 않다.
  3. 의도와 putExtras가 선호된다.

데이터가 실제로 크기가 커서 SD 카드에 저장하고 활동 사이에 파일 URI를 전달할 수 있습니다.

1

내 제안 일 것입니다.

다양한 활동에 사용 된 데이터가있는 경우 대신 Intent from 1 활동을 사용하여 데이터를 전달하십시오. Global Level Static 변수를 만든 다음 응용 프로그램을 통해 Global 변수에 액세스하십시오.

당신이 클래스를 받기 지금 데이터 -

Intent intent = new Intent(context,NextClass.class); 
intent.putExtra("ACTIVITY_ID","Any value or variable"); 
intent.putExtra("CUSTOMER_ID","Any Value or variable"); 
startActivityForResult(intent, 0); 

를 전송하고자하는 클래스에서

+0

위의 답변에서 아이디어를 얻은 경우 다른 사람들에게 도움이 될 수 있도록 답변을 수락 해주십시오. –

+0

전역 변수는 "나쁜"것이라고 생각했습니다 .-) – NoToy

2

, 우리는 쉽게 다른 하나 개의 활동에서 데이터를 전달할 수있는이 방법을 사용

Bundle extras=getIntent().getExtras(); 
String ACTIVITY_ID=extras.getString("ACTIVITY_ID"); 
String CUSTOMER_ID=extras.getString("CUSTOMER_ID"); 

NextClass을 말할 수 ...

+0

이것은 내가하고있는 것과 비슷하지만, 호출 된 활동에서 돌아가고 있습니다. 위의 게시물에서 언급 한 바와 같이 – NoToy

+0

전역 정적 변수를 만들고 그 변수에 필요한 값을 설정할 수 있으며 필요할 때마다 액세스 할 수 있습니다. – Sandeep

관련 문제