2011-04-27 7 views
0

나는 클릭 할 때 작은 대화 상자를 팝업 할 수있는 위젯을 가지고있다. 이 대화 상자는 singleInstance launchMode에서 RemoteActivity라는 활동으로 표시됩니다. 이 중 하나의 대화 상자에는 표준 launchMode가있는 메인 애플리케이션 MainActivity를 시작하는 버튼이 있습니다.singleInstance 활동에서 활동을 시작하는 방법은 무엇입니까?

그러나이 버튼을 클릭하고 startActivity()를 호출하면 Mainactivity가 시작되지 않지만 logcat에서 해당 "Starting activity : Intent {...}"를 볼 수 있습니다.

RemoteActivity의 launchMode를 표준으로 설정 한 다음 MainActivity를 시작했지만 이것이 원하는 것이 아니며 RemoteActivity는 위젯의 확장 일 뿐이므로 다른 활동과 쌓아두기를 원하지 않습니다.

나는 또한 FLAG_ACTIVITY_NEW_TASK와 함께 시도했지만 도움이되지 않았고, 어쨌든 according to the docs 필요는 없습니다 :

A는 "singleInstance"활동의 반면에 다른 활동을 허용하지

그 일의 일부가되어야한다. 작업에서 유일한 활동입니다. 이 다른 활동을 시작하면 작업이 다른 작업에 할당됩니다. FLAG_ACTIVITY_NEW_TASK 이 의도 된 것입니다.

어떻게 내 주요 활동을 시작할 수 있습니까?

UPDATE/ERRATA :

는 MainActivity 실제로 이미 작업의 일부가 아닌 경우에만 시작되지만. 런처를 통해 MainActivity를 정상적으로 시작한 다음 뒤로를 눌러 종료하면 RemoteActivity가 MainActivity를 시작합니다.

그러나 Back을 누르는 대신 MainActivity를 나가기 위해 Home 키를 누르면, RemoteActivity는 logcat에 의도가 있지만 MainActivity를 시작할 수 없습니다.

나는 이것을 Froyo에서 테스트하고 있습니다.

어떤 현상이 발생했는지 알 수 있습니까?

답변

0

이 문제는 RemoteActivity에서 startActivity() 전에 finish()를 호출 할 때만 발생합니다. finish() 전에 startActivity()를 호출하면 MainActivity가 이미 기존 작업의 일부인지 아닌지 여부가 올바르게 작동합니다.

그림보기 ...

0

어쩌면 noHistory flag을 찾고 계신가요?

+0

noHistory를 RemoteActivity에 추가하려고 시도했지만 도움이되지 않습니다. 나는 이것을 MainActivity에 추가하지 않을 것이며, 나는 이것을 원하지 않는다. 그것은 역사의 일부분이어야한다. 그건 그렇고, 미묘한 부분이 있습니다. 제 "업데이트"를 참조하십시오. – olivierg

관련 문제