android - 通过getIntent()获得的Intent有什么特殊的吗?
伊谢尔伦
伊谢尔伦 2017-04-18 09:04:59
0
1
415

通过getIntent()获得的Intent用于开启Activity(Activity开启本身)时,观察发现Activity不会走onDestroy()方法.

那么以下两种获得Intent的方法在开启Activity时,有什么本质区别吗?

  • Intent intent1 = getIntent(); //此方法在MainActivity中调用

  • Intent intent2 = new Intent(MainActivity.this, MainActivity.class);

如果利用intent2startActivity() 那么会开启一个全新的Activity
如果用intent1 则不会.

看了下源码,但是由于本人太水,没有找到判断用于开启ActivityIntent是否是attach()Activity上的这个逻辑,所以比较困惑,望大神解答.

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

모든 응답(1)
刘奇

정보의 양이 너무 적고 질문자가 키 코드를 게시하지 않았습니다. AndroidManifest.xml에 있는 활동의 선언 부분이라면 추측에만 의존할 수 있습니다.

주제별로 기술된 내용과 Activity의 행위를 살펴보면 다음과 같이 Activity의 정의를 내릴 수 있습니다.
으아악

이렇게 정의하고 직접

하면 확실히 작동하지 않습니다. 왜냐하면 시스템은 기본적으로 런처(애플리케이션 입구)의 동작을 기반으로 인텐트를 생성하고 애플리케이션이 실행되었을 때 인텐트를 생성하기 때문입니다. 시작하면 응답이 없습니다. (백그라운드로 전환된 경우 호출 시 애플리케이션이 다시 포그라운드로 전환됩니다.) 그러나

에는 위의 문제가 없습니다. startActivity(getIntent())또한 startActivity(new Intent(...)) 또는

/

과 같은 플래그가 선언되지 않는 한 새 onDestroy()을 시작할 때 Activity이 호출되지 않습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿