2014-07-21 1 views
0

다음 방법 : KeyChain.choosePrivateKeyAlias은 사용자가 목록에서 키 별칭을 선택할 수있는 시스템 대화 상자를 생성합니다. 인수 중 하나로서이 대화 상자를 생성하는 데 사용될 Activity 컨텍스트가 필요합니다. 선택하면 콜백이 호출됩니다.KeyChain.choosePrivateKeyAlias ​​활동에 액세스하는 방법?

내 시나리오에서 사용자는 별칭을 선택하지 않고 "홈"버튼을 누릅니다. 나는이 사건을 가로 채고 싶다. 어떻게해야합니까?

또한이 대화 상자를 프로그래밍 방식으로 취소하고 싶습니다. 이 경우이 자식 활동에 액세스 할 수있는 방법이 필요합니다 (choosePrivateKeyAlias은 새 대화 상자에 "핸들"을 반환하지 않음). 참조 (handle/id/etc.)없이 자식 활동에 액세스 할 수 있습니까?

답변

0

내 이해에 따르면, 해당 대화 상자를 닫으려는 경우. 그렇다면 안드로이드 OS에 관해서 내가 아는 한. 활동을위한 라이프 사이클 방법이 있습니다. 그래서 나는 생각한다

당신의 활동 "onStop()"안에 "yourDailog.dismiss()"라고 불렀다면. 문제가 해결되면

위의 방법으로 수행하면 HOME 버튼을 누를 때마다 작업의 onStop 메소드가 호출됩니다. 그 시점에서, 그것은 대화를 닫을 것입니다.

+0

"yourDialog"가 무엇인지 설명하십시오. 시스템 대화 상자를 생성 할 때 아무런 참조도받지 못합니다. – Dmitry

+0

확인하십시오 공개 무효 onWindowFocusChanged (부울 isTrue) { super.onWindowFocusChanged (isTrue); if (! isTrue) { 의도 closeDialog = 새로운 의도 (Intent.ACTION_CLOSE_SYSTEM_DIALOGS); sendBroadcast (닫기 다이얼로그); } } – VVB

+0

시스템 생성 대화 상자를 닫으려는 의도 부분을 참조하십시오. – VVB

1

시스템 활동이므로 해당 활동을 프로그래밍 방식으로 종료 할 수 없습니다. 기기 또는 연락처 목록에서 브라우저를 실행하는 것과 같습니다. 종료하는 유일한 방법은 뒤로를 누르면 해당 활동이 닫히고 다시 시작됩니다.

+0

Ok. 그러나 "최근 앱"을 누르고 다른 활동을 선택하면 어떻게해야합니까? 이 경우에는 내 자신의 활동에서 콜백을받지 못합니다. – Dmitry

+0

이것은 사실이지만 누군가가 실제로 키를 올바르게 선택하면 콜백 만 수신하게됩니까? 그리고 당신의 액티비티에 대화 상자가 보여지기 때문에 당신의 액티비티가 활성화되어야합니다 ... 나는 KeyChain.choosePrivateKeyAlias ​​콜을 수행함으로써 이것을 테스트했고 대화 상자가 나타납니다 ... 집을 누르고 돌아 오면 대화 상자가 계속 표시됩니다. 당신의 목적이 아닌가? –

+0

내 활동에 시스템 대화 상자가 나타날 때 콜백을받습니다. 그 후에는 사용자가 대화 상자를 닫을 때까지 아무것도받지 못합니다. 사용자가 다른 활동으로 전환하면 알림을받지 못합니다. – Dmitry

관련 문제