2014-01-17 40 views
2

我有两个使用作为样式Theme.Holo.Wallpaper.NoTitleBar的活动,我想动画它们的转换。我在4个不同的xml文件中创建了4个这样的动画。overridePendingTransition和壁纸

left_in.xml 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
android:fromXDelta="100%" android:toXDelta="0%" android:fromYDelta="0%" 
android:toYDelta="0%" android:duration="200" /> 

enter image description here 这是一个有关该问题的图形:

PIC A活性1行驶

PIC B活性1点开始活动2和过渡就像一个魅力

PIC C活动2正在运行;

pic D问题!翻译开始,但现在墙纸似乎锚定到活动1.所以我看到活动2在黑色背景上消失,并且活动1与墙纸一起出现(墙纸不仅被揭露,而且正在翻译)。

我测试了不同设备上的相同代码: Acer Liquid E(android 2.3),Samsung S4(4.3),HTC one(Cyanogen 11)。问题只出现在三星。有没有人有任何建议?

回答

1

我找到了导致问题的原因。当一个活动被标记为“singleTask”时,似乎会出现此问题。

这是发生了什么事。

  1. Activity1启动Activity2。
  2. 转换按预期运行。
  3. Activity2尝试启动Activity1,但不会重新创建,只需放在前台即可。
  4. 过渡显示故障。

我无法将activity1 launchmode更改为“default”,所以我只是在activity2中添加这些标记时才启动activity1。

startActivity(new Intent(this, activity1.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK)); 

这解决了这个问题。