5

我有 3 项活动:家庭(基本活动)与

 <activity
        android:launchMode="singleTop"
        android:name="com.Home"
        android:label="@string/app_name"

        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

其他两个活动:Activity1 和 Activity2

android:theme="@android:style/Theme.Translucent" 可以从彼此或从家里调用主题。

他们总是回到家 onBackpress() 它被覆盖

intent.setClass(this, Home.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

当从activity2调用activity1时

intent.setClass(this, ACtivity2.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

它的 onResume 被调用但看不到 有什么解决办法吗?

我只想要堆栈中的单个 Activity 实例。

要求: Activity1 和 Activity2 应该一旦创建就永远不应该被销毁(它们应该总是从历史中调用),直到 Home 被调用。

帮帮我。提前致谢。

也去过这个

4

2 回答 2

2

我认为出现问题是因为您将 FLAG_ACTIVITY_CLEAR_TOP 用于家庭活动。

作为,它执行

如果堆栈中已经存在被调用活动类型的实例,则将该实例带到前台而不是创建新实例。此外,堆栈中位于该实例顶部的所有活动都将从堆栈中清除。例如,假设当前活动堆栈是 ABCDE,启动类型 C 的活动将从任务中清除活动 D 和 E,并生成堆栈 ABC。

因此,当您调用 Home Activity 时,您的 Activity 1 和 Activity 2 会被清除。

解决方案 :

带有 FLAG_ACTIVITY_RESET_TASK_IF_NEEDED 或 FLAG_ACTIVITY_REORDER_TO_FRONT 的 Call Home 活动

作为,它执行

除非意图创建新任务或将现有任务带到前台,否则此标志无效。在这种情况下,任务被重置,这意味着应用了任务关联性(导致活动从该任务移出或移至该任务),并且假设也设置了 FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET,则根据该标志的规范清除任务。

于 2013-03-14T10:19:15.067 回答
0

在你的清单中给

android:launchMode="singleinstance";
于 2013-03-14T09:57:06.227 回答