1

我的应用中有 2 个活动。A 活动是启动器活动。当我第一次运行应用程序时,启动器活动运行,但是当我按下主页按钮并通过单击应用程序图标从那里重新启动应用程序时,我总是让 B 活动运行。
我想确保在启动应用程序时活动 A 应该始终运行。

这是清单代码:

 <application
        android:icon="@drawable/icon"
        android:label="@string/app_name" >
        <activity
            android:name="com.velosys.smsManager.Activities.a"
            android:launchMode="singleInstance"
            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="com.velosys.smsManager.Activities.b" />
</application>

使用android:launchMode="singleInstance"符合我的目的,但它使从一项活动到另一项活动的移动非常缓慢。您能否建议我为 `android:launchMode="singleInstance" 提供任何选项。请帮助我。提前致谢。

4

1 回答 1

2

您可以尝试在 B 活动中覆盖 onUserLeaveHint() 方法(这将注册 Home 按钮按下事件)然后创建意图

    Intent startMain = new Intent(Intent.ACTION_MAIN);
    startMain.addCategory(Intent.CATEGORY_HOME);
    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(startMain);

这不是一个理想的解决方案

编辑:

是的,最好的解决方案是在 B 活动的 onPause() 方法中调用 finish()

于 2012-12-13T10:03:42.677 回答