Resume上的透明活动没有显示android

时间:2013-03-14 09:53:44

标签: android android-intent navigation

我有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。

帮帮我。 在此先感谢。

Visited this too

2 个答案:

答案 0 :(得分:2)

我认为问题出现是因为您正在使用FLAG_ACTIVITY_CLEAR_TOP进行家庭活动。

As,执行

  

如果已存在被调用活动类型的实例   堆栈,然后这个实例被带到前台而不是   创建一个新实例。此外,驻留的堆栈中的所有活动   在该实例的顶部从堆栈中清除。例如,   假设当前活动堆栈是ABCDE,启动一个   C类活动将清除任务中的活动D和E.   结果是堆栈ABC。

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

解决方案:

使用FLAG_ACTIVITY_RESET_TASK_IF_NEEDED或FLAG_ACTIVITY_REORDER_TO_FRONT调用主页活动

AS,执行

  

除非意图创建新任务或带来,否则此标志无效   现有任务到前台。在这种情况下,任务被重置,   意味着应用任务亲和力(导致活动   从这个任务转移到这个任务)和那个   设置FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET,任务是   根据该旗帜的规格清除。

答案 1 :(得分:0)

在你的清单中给出

android:launchMode="singleinstance";