恢复活动关闭堆栈顶部的活动

时间:2014-04-16 08:31:43

标签: android android-activity

假设有3个活动:A,B,C。 我发布A比B比C.我怎样才能恢复活动A(不再创建它)关闭B和C?

修改

从A:

开始B.
Intent intent = new Intent(this, B.class);
startActivity(intent);

Android为A调用onPause和onStop。

从B开始C:

Intent intent = new Intent(this, C.class);
startActivity(intent);

从C:

恢复A.
Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

Android为A调用onDestroy(),onCreate()和onResume()。

2 个答案:

答案 0 :(得分:1)

使用FLAG_ACTIVITY_CLEAR_TOP标志启动意图。

Intent intent_to_a=new Intent(C.this,A.class);
                intent_to_home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent_to_a);

您的活动A只有在未使用finish()手动销毁时才会恢复;或者由操作系统本身。

来自Android Docs

public static final int FLAG_ACTIVITY_CLEAR_TOP

  

如果已设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将关闭其上的所有其他活动,并将此Intent传递给(现在在最前面)作为新意图的旧活动。

答案 1 :(得分:1)

自己找到解决方案。

结合Intent.FLAG_ACTIVITY_CLEAR_TOP和Intent.FLAG_ACTIVITY_SINGLE_TOP Android不会破坏活动A.