Android程序中的内部活动或服务?
在Android程序中,我们可以从外部隐藏Android程序中的内部活动或服务?,android,exception,android-activity,export,Android,Exception,Android Activity,Export,在Android程序中,我们可以从外部隐藏活动吗?以下是interst程序中的部分AndroidManifest.xml <activity android:name=".ContactsActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.acti
活动吗?以下是interst程序中的部分AndroidManifest.xml
<activity
android:name=".ContactsActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ContactDetailActivity"
android:label="@string/activity_details" />
<activity
android:name=".PrefsActivity"
android:label="@string/activity_prefs" />
<provider
android:name=".data.ContactsProvider"
android:authorities="@string/contacts_authority"
android:exported="false" />
<service android:name=".svc.RESTService" />
我认为在AndroidManifest.xml
中声明活动或服务将意味着导出它们。但是错误消息告诉我们它们不是导出的
你能解释一下这里发生了什么吗?如果你需要更多关于代码的信息,请告诉我
永远谢谢 在清单中声明活动是一项要求,但如果不对其应用任何筛选器,则不会将其透露给外部世界
由于您的活动没有筛选器,因此只能从应用程序中启动
如您所知,。ContactsActivity
可以定位,因为它应用了一个过滤器:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
当我们通过显式目标组件名称显式启动活动时,是否需要任何意图过滤器?要启动具有隐式意图的活动,必须使用意图过滤器。@user3509406您需要android.intent.action.MAIN
作为应用程序的入口点。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>