2017-10-05 5 views
0

나는 이미지를 스캔하고 사진을 찍는 활동이 있습니다. 이 이미지를 스캔 할 때 Vuforia 라이브러리를 사용하고 있으며 카메라를 처리하는 코드의 구현을 제어 할 수 없습니다.활동을 싱글 톤으로 유지하는 방법

이 활동은 앱의 수명주기에 여러 번 표시되어야하지만 매번 카메라를 시작하는 데 시간이 걸립니다.

이 활동의 ​​인스턴스를 하나만 보유 할 수있는 방법이 있습니까? 그래서 카메라를 일시 정지하기 만하면 카메라 로딩 시간이 줄어 듭니다.

그래서이 액티비티를 어딘가에 저장하고 필요할 때 표시하거나 화면에 유지할 수있는 방법이 있지만 다른 액티비티 뒤에 있습니다.

+0

나는 그것을 얻었습니다 ... 나는 활동 시작 모드를 사용해야한다고 생각합니다. –

답변

1

singleTask launchMode을 사용해보세요. 이 launchMode의 활동은 시스템에 인스턴스를 하나만 가질 수 있습니다. 문서에서

<activity 
    android:name=".YourActivity" 
    android:label="activity name" 
    android:launchMode="singleTask"> 

:

시스템은 새 작업과 루트 그것에 의도의 루트에있는 활동을 만듭니다. 그러나 액티비티의 인스턴스가 이미 인 경우 시스템은 새로운 인스턴스를 생성하는 대신onNewIntent() 메서드를 호출하여 기존 인스턴스에 인 텐트를 라우팅합니다.

+0

좋아요, 그럼 이걸 내 매니페스트에 넣으십시오. 그리고이 활동의 ​​의도를 시작할 때마다 동일한 활동이 나타납니다. 그 활동을 어떻게 닫을 수 있습니까? 'finish()'는 작업을 끝내기 만하면됩니다. – vrwim

+0

예. 매니페스트에 한 번만 추가하면됩니다. 활동을 시작할 때마다 이전 활동이 사용됩니다. 'onNewIntent() '에서 의도를 처리해야한다는 것을 제외하고는 모두 동일합니다. –

+0

이전에 표시된 활동으로 돌아가서 이것을 활성 상태로 유지하려면 어떻게해야합니까? finish()를 사용할 수 없다 – vrwim