2013-09-03 3 views
0

응용 프로그램이 다른 응용 프로그램에서 활동을 시작합니다 (결과).홈 버튼을 길게 누르면 호출 활동으로 전환되지 않습니다.

모두 작동하지만 사용자는 홈 버튼을 길게 누르고 해당 활동을 선택하여 통화 활동으로 전환 할 수 있습니다. 논리적으로 이것은 잘못된 것이며 호출 된 활동은 호출 된 활동이 완료 될 때까지 제어를 받아서는 안됩니다.

나는이 문제를 어떻게 해결합니까? . (바람직하게는, 전화 애플리케이션 측)

현재 코드를 읽

원하는 무엇
final String INTENT_NAME = "com.xyz.xyz.GET_XXX"; 
//... 
Intent intent = new Intent(INTENT_NAME); 
intent.putExtra("something", something()); // app-specific 
startActivityForResult(intent, requestCode); 

: 착신 활동이 종료 될 때까지

호출 행위가 연기된다. 사용자는 호출 된 활동이 완료되기 전에 호출 활동으로 전환 할 수 없습니다 (태스크 스위처는 옵션으로 표시하지 않는 것이 좋음). 호출 된 활동이 완료되면 제어를 수신하는 호출 활동입니다.

현재이 무엇 :

라는 활동을 마무리하지 않고 호출 활동으로 전환 할 수 있습니다.

답변

0

어떻게 수정합니까?

디자인 결함을 수정하기 위해 앱을 다시 작성합니다.

다른 활동을 시작하는 것은 다른 웹 사이트에 연결하는 것과 같습니다.

  • 이 링크를 클릭 무언가를하고, 예를 들어, 서버를 유발하는 양식을 제출하는 것은 귀하의 사이트로 리디렉션 (일부 앞으로 작업을 통해 사이트를 돌아 : 사용자는 사용자가 해당 링크를 제공, 원하는 무엇이든 할 수 있습니다)

  • ) (전혀 귀하의 사이트로 돌아가 예를 들어, 브라우저 탭을 닫습니다, 링크를 클릭하면 아무것도 할 수없고, BACK 버튼

  • 를 통해 사이트를 다시 링크를 클릭, 아무것도하지 않는, 그리고

당신은 startActivityForResult()와 비슷한 결과를 가지고 :

  • 사용자는 (일명 긴 눌러 홈) BACK 또는 최근 통화를 통해 앱에

  • 사용자는 반환 결코 환영 돌아 오신 것을 환영합니다 앱에

  • 사용자는 그들이 다른 활동에 할 거라고 바라고 일을하는 환영

귀하는 이와 관련하여 사용자를 제어 할 수있는 방법이 없습니다. 따라서 해당 가능한 결과로 OK가되도록 애플리케이션을 구현해야합니다. 또는 응용 프로그램을 startActivityForResult()을 사용하지 않도록 다시 작성해야합니다.

+0

디자인 결함이 없으므로 응용 프로그램이 중단되지 않습니다. OTOH, 동일한 응용 프로그램에서 정의 된 활동이 모두 작업 전환기에 표시되는 것은 아니며 동일한 동작이 필요합니다. – 18446744073709551615

+0

@ 18446744073709551615 : 작업 당 하나의 축소판 그림이 작업 전환기에 표시되므로 "동일한 응용 프로그램에 정의 된 활동이 모두 작업 전환기에 표시되지 않습니다"라는 의미가 무엇인지 알 수 없습니다. 사용자의 행동을 제어하여 사용자를 공격하려고한다고 구체적으로 명시한 질문과 관련하여 귀하의 의견은 의미가 없습니다. "사용자는 호출 된 활동이 완료되기 전에 호출 활동으로 전환 할 수 없습니다 (바람직하게는 작업 전환기 옵션으로 표시하지 말아야한다 "). – CommonsWare

관련 문제