2015-01-09 3 views
1

내 앱을 비밀번호로 보호하여 백그라운드에서 앱을 실행하거나 다시 시작할 때 PIN을 입력해야합니다. 나는 iOS에서 화면을 덮고 올바른 PIN을 입력하면 사라지는 UIView를 사용하여이 작업을 수행했습니다 (Dropbox 응용 프로그램에서 활성화 할 수있는 암호와 유사). 그러나 Android에서는 진행 방법을 잘 모릅니다. 패스 코드 단편이나 활동을 만들면 뒤로 버튼을 눌러 간단히 제거 할 수 있습니다. 뒤로 버튼을 다시 프로그래밍 할 수 있다는 것을 알고 있지만 원치 않는 결과가 발생할 수 있다고 생각합니다. (패스 코드보기가 표시 될 때 백 스택을 지우는 것과 같이)앱에 액세스하기위한 비밀번호

PIN을 확인하고 UI 레이아웃을 수행하면 문제가 없지만 문제는 (프로그래밍 방식의 관점에서) 표시하는 방법입니다. 앱을 단편, 활동 또는 다른 것으로 덮을 것을 권장합니까? 암호 코드보기가있을 때 사용자가 응용 프로그램을 사용하지 못하게하려면 어떻게합니까? 다른 모든 시간에는 응용 프로그램에 아무런 부작용이 없습니까?

+1

당신은 대화와'setCanclable (fasle)를 만들 수 있습니다. 사용자가 올바른 PIN을 입력하고 확인 버튼을 누르면 대화 상자가 닫힙니다. –

+0

고마워! 이상적으로는 UI를 수정할 수 있도록 사용자 정의보기를 만들고 싶습니다. 그러나 사용자 정의보기와 비슷한 솔루션을 안전하게 표시 할 수없는 경우 솔루션은 좋은 백업입니다. – Jorn

+4

대화 상자를 사용자 정의 할 수 있습니다. 네가 원해. 활동에서이 작업을 수행 할 수도 있습니다. 'onBackPressed()'를 오버라이드하고 BACK 버튼을 무시함으로써 해당 액티비티에서 BACK 버튼을 비활성화시킬 수 있습니다. 이것은 앱에 바람직하지 않은 영향을 미치지 않습니다. –

답변

1

활동의 onBackPressed()을 덮어 쓰면 버튼을 눌러도 부작용이 없습니다. 조각을 사용하고 "LockFragment"가 존재하는지 또는 앱이 정상 상태로 반응 할 수 있도록 잠금 해제 상태인지 확인하면 Screen 또는 MainActivity를 덮는 사용자 정의 활동에서이 작업을 수행 할 수 있습니다.

활동 코드 :; 그것을 위해`

@Override 
onBackPressed(){ 
    if(check if your Fragment is present){ 
    //do noting 
    } else { 
    //react normal 
    super.onBackpressed() 
    } 
} 
관련 문제