【问题标题】:Android Manifest: no default activity?Android Manifest:没有默认活动?
【发布时间】:2015-06-09 19:46:19
【问题描述】:

我从一个开源项目中得到了这个清单文件

<?xml version="1.0" encoding="utf-8"?>

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="20" />

<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
    <service
        android:name="org.gege.caldavsyncadapter.syncadapter.SyncService"
        android:exported="true">
        <intent-filter>
            <action android:name="android.content.SyncAdapter" />
        </intent-filter>

        <meta-data
            android:name="android.content.SyncAdapter"
            android:resource="@xml/syncadapter" />
    </service>
    <service
        android:name="org.gege.caldavsyncadapter.authenticator.AuthenticationService"
        android:exported="true">
        <intent-filter>
            <action android:name="android.accounts.AccountAuthenticator" />
        </intent-filter>

        <meta-data
            android:name="android.accounts.AccountAuthenticator"
            android:resource="@xml/authenticator" />
    </service>

    <activity
        android:name="org.gege.caldavsyncadapter.authenticator.AuthenticatorActivity"
        android:label="@string/title_activity_authenticator"
        android:windowSoftInputMode="adjustResize|stateVisible"/>
</application>

我对那个清单有点困惑。它有两项服务和一项活动。该活动未标记为默认活动。当我在手机上运行该项目时,它没有显示任何启动应用程序的图标,应用程序也不会自动启动。

这样的清单有意义吗?基于这样一个 manifest 的 Android OS 是什么?

【问题讨论】:

  • 这样的清单有意义吗? 是的,对于图书馆项目... 编辑 它也可以是“仅限帐户”的应用程序(不知道目的是什么)
  • 不讨论这种特殊情况,但可以Activity 仅从BroadcastReceiver 调用一个场景
  • @AnkitBansal not true since API 11 - 如果用户不启动任何其他 Activity BroadcastReceivers 将不起作用

标签: android android-manifest


【解决方案1】:

这样的清单有意义吗?

是的,因为它声明了一个 sync adapter 一个身份验证器。

通常,此类清单在图书馆项目中也很有意义。然后使用该库的应用程序项目提供主要的启动器活动。构建过程将清单文件合并在一起,因此您可以为每个 APK 获得一个清单。

基于这样一个清单的 Android 操作系统是什么?

因此,它声明了一个活动和两个服务等入口点。通常,您通过Intent 调用这些入口点。这些服务被声明为一个同步适配器和一个身份验证器,因此它们可以被框架调用。出于 UI 目的,该 Activity 可能由身份验证器服务调用。

因为没有主启动器活动,所以看不到菜单图标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 2016-10-03
    • 1970-01-01
    • 2015-02-23
    相关资源
    最近更新 更多