2013-04-29 3 views
11

Android 문서는 인 텐트를 "수행 할 작업에 대한 추상적 인 설명이 포함 된 정보 묶음"으로 정의합니다. 이것은 필요한 경우 하나의 인 텐트 오브젝트를 여러 번 재사용 할 수 있어야한다는 것을 암시하지만, 이것을 보여주는 예를 보지 못했거나 할 수있다. 다음의도를 다시 사용하는 것이 안전합니까?

private final Intent enableBluetoothIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); 
... 
protected void onCreate(Bundle savedInstanceState) { 
    enabledBluetoothIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0); 
    ... 
} 

과 코드의 여러 위치에 startActivityForResult(enableDiscoverableIntent, REQUEST_ENABLE_BT_DISCOVERY) 전화 : 다음을 수행하지 어떤 이유가 있나요? 동일한 의도가 두 번 시작되면 어떻게됩니까?

+0

'의도'를 재사용 할 때의 예는 무엇입니까? 때로는'Intent' 객체를 생성하고 어떤 조건이 충족되는지에 따라'Activity'의 다른 장소에서 사용합니다. 그게 전혀 도움이되는지 모르겠다. ... – codeMagic

+0

내 예제에서 사용자에게 블루투스를 확인하거나 거부하도록 요청하는 팝업을 시작하는 블루투스 액세스를 요청하고 있습니다. 이것은 몇 곳에서 발생할 수 있습니다. 의도를 사용하고 블루투스가 성공적으로 켜지지만 나중에 블루투스가 다른 곳에서 꺼지면 다시 요청하고 싶습니다. 동일한 객체를 사용하는 것은 동일한 요청을 보내려고하기 때문에 가장 깨끗해 보입니다. – maria1nes

+0

이것은 나에게 합리적인 것처럼 보이고 어떤 문제도 보이지 않습니다. 그러나 어떤 상황에서는'Intent 플래그 '를 사용하여 스택에서이'Intent '로 시작된 유사한 태스크를 지우는 것과 같은 일을 할 수 있습니다 – codeMagic

답변

7

Intent은 많은 데이터 및 지침에 불과하기 때문에 완전히 똑같이 사용하려면 완전히 안전합니다. 동일한 Intent 개체를 다른 용도로 사용하려면 (예 : 여러 개의 탭이 있고 동일한 의도를 다시 사용하지만 실행하려는 활동을 변경하는 탭을 설정하려고 할 때)주의를 기울여야합니다. 각각에 대해 새 Intent 개체를 다시 만드는 것이 좋습니다.

관련 문제