我有一个非常奇怪的问题。它与overridePendingTransition只在一个活动转换(按下返回按钮后)上无法正常工作,而且只在运行Honeycomb的Galaxy Tab 10.1上出现。
这是情况。我有一个BaseActivity类,它扩展了Activity。我使用它来添加一些远离Android默认的过渡更改。我像这样覆盖finish()函数:
@Override
public void finish()
{
super.finish();
Log.i(StaticValues.TAG, "Calling finish in ActivityBase");
overridePendingTransition(getAnimationId("slide_in_right") ,getAnimationId("slide_out_right"));
}
由于使用Unity,我必须使用getAnimationId而不能使用R.anim.slide_in_right/left。
对于想要了解的任何人,getAnimationId是以下函数:
protected int getAnimationId(String animName)
{
if(mResources == null)
{
mResources = this.getResources();
}
return mResources.getIdentifier(animName, "anim", mPackage);
}
现在来到了奇怪的部分。当从我的Nexus S手机上的主Activity调用任何基于ActivityBase的活动时,这很好用。当在我的Galaxy Tab 10.1上调用两个活动(只是信息活动,链接到网页等)时,它也运行良好,但是当调用第三个活动(一种音频记录器)时,进入的过渡是正常的(滑动),但是当退出时(通过调用finish或返回按钮)它看起来像方向变成了横向(标准主屏幕,因为这是一个平板电脑),然后将主Activity加载回原来的样子。由于我已经给出了历史背景,请问有人能告诉我为什么只有那个活动在平板电脑上出现这种情况呢?
public void finish()
{
removeUnsavedRecording();
super.finish();
}
上面是我在音频录制Activity中重写的完成函数。