所以我有一个非常复杂的导航系统,我最终可以在根活动和其他活动之间进行循环。为了避免内存泄漏,我必须在再次启动根活动时使用Intent.FLAG_ACTIVITY_CLEAR_TOP
。
要在活动之间进行转换,我使用共享元素转换(ImageViews),从根活动到其他活动(在这种情况下我实际上只是使用Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
)时工作正常。
问题是从其他活动重新启动主要活动时。在意图中使用Intent.FLAG_ACTIVITY_CLEAR_TOP
会导致背景闪烁到手机主屏幕(根活动变得完全透明,您可以在转换过程中看到主屏幕)。
Intent intent = new Intent(parent, RootActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(parent, imageView, imageView.getTransitionName());
startActivity(intent,options.toBundle());
在根活动中,我有一个片段,因此我必须在postponeEnterTransition()
中调用onCreate
,然后在片段根视图的startPostponedEnterTransition()
侦听器中调用onPreDraw
。< / p>
我无法弄清楚问题是什么。这是一个与主题相关的问题还是Android中的一些错误?