1

对于演示应用程序,我正在使用自定义 Android 主屏幕。主屏幕需要有 2 个变体,因为它将安装在不同的 DEMO 设备上。我不想创建多个 APK 安装,而只是重复使用相同的 apk。

我的 AndroidManifest.xml 定义了 2 个主屏幕活动:

<application android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
    <activity android:name=".Homescreen_"
              android:label="@string/app_name"
              android:screenOrientation="landscape"
            >
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
            <category android:name="android.intent.category.HOME"/>
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity android:name=".map.HomescreenMap_"
              android:label="@string/app_name_map"
              android:screenOrientation="landscape"
            >
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
            <category android:name="android.intent.category.HOME"/>
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
</application>

所以问题是当我在设备上按 Home 并选择另一个主屏幕时,它不会改变 VIEW。但是,在日志中我可以看到另一个主屏幕 Activity 确实正在启动。

在 Android 日志中,我可以看到另一个主屏幕正在启动:

10-08 12:09:40.014: INFO/ActivityManager(146): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=android/com.android.internal.app.ResolverActivity u=0} from pid 146
10-08 12:09:40.444: INFO/ActivityManager(146): Displayed android/com.android.internal.app.ResolverActivity: +401ms
10-08 12:09:41.824: INFO/ActivityManager(146): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x13200000 cmp=com.company/.map.HomescreenMap_ u=0} from pid 146

但是不会显示 UI,也不会显示我在 onStart 方法中放入的任何消息。

一旦我从标准启动器应用程序抽屉打开主屏幕,它就可以工作了。这些活动不会相互继承,我也尝试过。

4

0 回答 0