假设有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()。
答案 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()手动销毁时才会恢复;或者由操作系统本身。
public static final int FLAG_ACTIVITY_CLEAR_TOP
如果已设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将关闭其上的所有其他活动,并将此Intent传递给(现在在最前面)作为新意图的旧活动。
答案 1 :(得分:1)
自己找到解决方案。
结合Intent.FLAG_ACTIVITY_CLEAR_TOP和Intent.FLAG_ACTIVITY_SINGLE_TOP Android不会破坏活动A.