찾다

 >  Q&A  >  본문

android - 关于判断activity是否存在

各位,我用这个方法在
判断activity是否存在,
我把红色的的类名改成KoBe,但是还是显示这个activity存在;但是你看

KoBe是不存在这个包里的,请问这是咋回事????

天蓬老师天蓬老师2772일 전577

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

  • 巴扎黑

    巴扎黑2017-04-17 17:58:38

    이제 이 방법을 포기해야 할 때입니다. 이 방법이 얼마나 많은 사람들에게 피해를 입혔는지 모르겠습니다. Intent 소스코드를 살펴보겠습니다

    다른 응답자들이 말했듯이 컴포넌트에 대한 검증이 없습니다. 따라서 어떤 setClassName 매개변수를 설정하더라도 반환된 ComponentName은 비어 있으면 안 되므로 질문자가 언급한 활동은 항상 존재합니다.
    해결책, 다른 방법을 사용하세요

    으아악

    setClassName의 두 번째 매개변수는 包名+类名

    입니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 17:58:38

    으아아아

    이 방법은 가장 간단하고 조악한 방법입니다

    회신하다
    0
  • 迷茫

    迷茫2017-04-17 17:58:38

    으아악

    ActivityManager를 사용하여

    회신하다
    0
  • 迷茫

    迷茫2017-04-17 17:58:38

    resolveActivity는 클래스 존재 여부를 확인하지 않고 단순히 setClassName
    에 의해 설정된 값을 반환합니다.
    동일한 프로세스라면 Class.forName(className)을 사용하여 클래스 존재 여부를 확인하는 것이 좋습니다

    으아아아

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