찾다

 >  Q&A  >  본문

android - Activity singleTask后台切换错误

场景1:ActivityA启动ActivityB,ActivityB启动ActivityC,此时用户看到的是ActivityC。ActivityB的启动模式是singleTask。此时用户点击home键,再点击应用图标返回,看到的是ActivityC。

场景2:ActivityA启动ActivityB,ActivityB启动ActivityC,此时用户看到的是ActivityC。ActivityA的启动模式是singleTask。此时用户点击home键,再点击应用图标返回,看到的是ActivityA。

以上两个场景ActivityA都是App入口Activity。

我的问题是:为什么会出现场景2这样的现象,如果是因为入口Activity被设置了singleTask,点击应用图标时重启了入口Activity的话,场景2是没有问题的。但如果是这样,场景1里的ActivityA不应该也会被重启吗?用户看到的不应该是ActivityA了吗?为什么能够到ActivityC呢。总之我觉得这两个是非常矛盾的,希望了解的开发者给解释一下。

ringa_leeringa_lee2803일 전506

모든 응답(2)나는 대답할 것이다

  • 迷茫

    迷茫2017-04-17 17:26:09

    시나리오 2에서 ActivityA의 시작 모드는 무엇인가요?

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 17:26:09

    두 가지 설정 사례singleTask

    • 시작한 singleTaskActivity이 스택의 맨 아래가 아닌 경우(즉, 그 전에 시작된 Activity가 있는 경우) 현재 스택의 맨 위에 위치하게 됩니다. .Activity가 있으면 제거됩니다. 이것이 첫 번째 시나리오입니다.

    • 시작한 singleTaskActivity이 스택의 맨 아래에 있을 때(즉, 처음으로 시작된 Activity가 시작된 경우), 동일한 스택이 아닌 새 스택이 시작됩니다. 나중에 시작되는 Activity 위치입니다. 이것이 두 번째 시나리오입니다.

    회신하다
    0
  • 취소회신하다