2012-10-29 4 views
4

이미지를 기능 중 하나로 캡처하여 앱을 개발 중입니다. 내 홈 화면에는 두 개의 회 전자가 있습니다. 회 전자 값을 선택한 후 사진 촬영 버튼을 클릭하여 사진을 캡처 할 수 있습니다. 이 벌금까지. 그러나 문제는 카메라 앱 오리 엔테이션에 있습니다.카메라 앱 오리엔테이션은 부모 작업을 새로 고칩니다.

사진 촬영 버튼을 누르면 카메라가 시작됩니다. 캡처 된 이미지는 저장되며 (절대적으로 양호) 부모 작업으로 돌아 왔습니다. 그러나 문제는 활동을 새로 고칩니다.. 되돌아 오는 동안 나는 유선의 것들을 볼 수있다.

1) 때때로 풍경 화면 (1 초)을 보여 주며 활동을 새로 고침하고 Spinner 값을 재설정하는 결과를 가져온다.

2.) 때로는 단지 Spinner 값을 재설정합니다.

정말 짜증나. 이 문제를 해결할 단서가 없습니다. 나는 당신들 중 일부가 이것을 해결하기를 희망합니다.

많이 감사드립니다.

+0

강제로이 풍경으로 전환하는 것에 관해서는 내 요리 책에 좋은 소식이 없습니다. 카메라 앱은 가로로 움직이며 안드로이드 시스템은 인물 사진을 실행하는 데 필요한 액티비티 요구 사항을 따르기에 때때로 빠르지 않습니다. 그 이유는 직접 카메라 방향을 위조해야한다는 의미 일지라도 카메라 방향을 요구하는 활동에 가로 방향을 사용하는 이유입니다. –

답변

2

다른 앱 (카메라)에서 활동을 시작할 때 무엇이든 준비하는 것이 좋습니다. 활동으로 인해 잘못된 데이터가 반환되거나 화면 방향이 변경되거나 사용자가 앱으로 돌아 오기 전에 매우 오랜 시간이 걸릴 수 있습니다. 설명을 통해 카메라 앱이 실행될 때마다 방향이 바뀌는 것처럼 들립니다.

Android에는 이러한 유형의 시나리오를 처리 할 수있는 상태 관리 메소드가 내장되어 있습니다. onSaveInstanceState() 메소드를 무시하여 활동의 상태 (예 : 회 전자 값)를 저장 한 다음 onCreate()에 상태를 복원 할 수 있습니다.

onRestoreInstanceState()은 다음과 같습니다. (예 here)이 등,

편집 당신이 카메라 응용 프로그램을 실행하고, 또는 사용자가 홈 버튼을 누른 후 응용 프로그램에 반환하는 경우를 처리합니다 메모리 압력으로 인해 활동이 중단 된 다음 나중에 다시 생성 된 경우에만 호출됩니다. 대신 BundleonCreate() (기기 회전 후에 다시 호출 됨)에 전달하는 것이 훨씬 안정적입니다. 그 Bundle은에 저장된 모든 것을 포함합니다. 당신이 onResume() 때까지 작업을 연기해야하는 경우

, 당신은 당신의 Activity 클래스의 일부 멤버 변수를 채울 다음 onResume()에서 그 변수를 사용하기 위해 onCreate()를 사용하는 것이 좋습니다.

+0

자세한 답변을 보내 주셔서 감사합니다. 나는 그것들을 시도하고 당신에게 돌아올 것입니다 – GoCrazy

+0

당신의 대답을 시도했지만 onrestoreInstancestate는 결코 호출되지 않습니다. 감사합니다. – GoCrazy

+0

"onResoreInstanceState'를'onResume'에 호출 했습니까? OnResume에서 onRestoreInstanceState 또는 onSaveInstanceState를 호출 할 필요가 없습니다. 나는 당신의 질문에 대답하기 위해 나의 대답을 확장했습니다. – acj

관련 문제