우리는 두 가지 방법으로 시작할 수있는 활동과 함께 응용 프로그램이 있습니다이러한 "잘못된"의도가있는 이유는 무엇입니까?
- 다른 활동에서을 - 항상 깊은 I 마찬가지로 지금까지
연결에서
Intent.ACTION_VIEW
을 얻거나 문자열 추가 문자를 얻습니다. 그러나 조치는 어디 까지나 Intent.ACTION_MAIN
이고 추가 데이터는 없습니다. 다음과 같은 의도의 toString()
(클래스 이름 변경)입니다 : Intent.getDataString()
반환 널 (null),
Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10400000 cmp=com.example.OurActivity }
Intent.getExtras()
는 null를 돌려줍니다.
어떤 경우에 이런 일이 발생할 수 있습니까? 활동 카테고리의 카테고리가 왜 Intent.CATEGORY_LAUNCHER
입니까? 사용자에게 적절한 콘텐츠를 표시하는 데 필요한 데이터를 어떻게 얻을 수 있습니까?
launchMode
은 활동에 지정되지 않았습니다. AndroidManifest.xml
에있는 유일한 IntentFilter
은 딥 링크 (런처 카테고리가 아님) 용입니다.
문제는 Android 4-6에서 다양한 기기에서 발생합니다.
편집 : 플래그를 언급하는 것을 잊었다 : 인쇄 출력으로
는 텐트의 플래그 FLAG_ACTIVITY_NEW_TASK
및 FLAG_ACTIVITY_BROUGHT_TO_FRONT
을 수 있습니다 제안합니다. 그게 여기서 관련이있을 수 있다고 생각합니다.
나는 당신이 옳다고 믿습니다. Nova Launcher는 어떤 행동이나 카테고리도 보내지 않았지만 다른 발사자는 약간 다른/올바르게 할 수 있습니다. –