비슷한 응용 프로그램이 두 개 있습니다 (무료, 유료 중 하나). 나는이 무료 응용 프로그램에서 적절한 암시 적 목적으로 startActivity
를 호출 할 때내 보낸 활동이 활동 선택기에 나열되었습니다.
액티비티가 exported="false"
<activity
android:name=".MyActivity"
android:exported="false"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/vnd.mine" />
</intent-filter>
</activity>
으로 정의, 활동 선택기가 나타납니다. 유료 응용 프로그램에서 활동이 나타납니다 왜 내가이 URL을 기반으로 텐트 필터를 추가 할 수 있습니다 가정 exported="false"
이지만, 내 질문이기 때문에
나는, 이해가 안 다음에서 활동을 수행하는 이유 사이먼이 활동이 다른 응용 프로그램의 구성 요소에 의해 발사 될 수 있는지 여부를
을 읽을 때 다른 응용 프로그램은
나는 정말 행복하지는 않지만 훌륭한 답변을드립니다. 나는이 소중한 Dianne Hackborn에게 대답 할 수 있습니다 : 나는 라이브러리 프로젝트의 코드를 generic으로 만들고 싶습니다. 그것은'AbstractActivity'를 정의합니다; 무료 앱은 '.MyActivity'를 정의하고 액티비티'.MyProActivty'를 지불하며 둘 다 동일한 인 텐트 필터를 사용합니다. 상속을 할 수없는 경우 일반적으로 프레임 워크의 버그를 고려할 것입니다. – rds
해결 방법 : 클래스 또는 명시 적 인 텐트를 반환하는 추상 클래스에 메서드가 있어야합니다. (내 특별한 경우에, 나는 정말로 그것을하고 싶지 않다.) – rds
@rds : "라이브러리 프로젝트의 코드를 일반화하고 싶다."- 그것은 실제로의 역할이 아니다. 수출 된 활동으로 그런 식으로 사용할 수는 있지만 원래의 목적은 아닙니다. OS 및 제 3 자에게 귀하가 기꺼이 사용할 수있게 해주는 기능성 광고입니다. –
CommonsWare