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

在Android程序中,我们可以从外部隐藏
活动吗?以下是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>