1

我创建了应用程序来充当家庭启动器。因此,当用户单击主页按钮时,我会使用 Launcher 或我的应用程序名称来完成操作,例如“myhomelauncher”。

当我单击主页按钮并单击 myhomelauncher 时,我的应用程序从一开始就完美加载所有内容。现在,当我在我的应用程序的第二个屏幕中说我正在查看我的应用程序中的活动 2 时,现在我单击主页按钮并单击 myhomelauncher,我最终得到了相同的活动 2 窗口,它没有重新加载。(它应该重新加载并显示活动 1 而不是 2)

我见过很多应用程序每次点击启动器时都会重新加载。为什么不是我的?

这是我在 manifest.xml 中所做的

<activity
    android:name=".MyLauncher"
    android:label="@string/app_name"
    android:persistent="true"
    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>

我不确定错误在哪里?

4

3 回答 3

2

抬头看launchMode。但要小心,权力越大,责任越大。

于 2013-02-27T09:56:54.813 回答
2

这是似乎对我有用的清单中的相关部分。请注意,我已将singleInstance置于启动模式,因为我永远不想要一个以上的应用程序。

<application  android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".usbEffects" 
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"                
                android:windowSoftInputMode="stateAlwaysHidden" 
                android:screenOrientation="portrait"
                android:launchMode="singleInstance"
                android:configChanges="keyboardHidden|orientation"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

    </activity>
于 2013-02-27T09:57:53.657 回答
2

请查看文档 - 您的问题可能感兴趣的是以下设置:

我怀疑设置android:launchModesingleTask可以解决您的问题,但要小心这会导致哪些副作用。

所以:

<activity
    android:name=".MyLauncher"
    android:label="@string/app_name"
    android:persistent="true"
    android:screenOrientation="landscape"
    android:launchMode="singleTask">
    <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>

应该做的伎俩。

于 2013-02-27T10:00:25.173 回答