我有一项主要活动和一项儿童活动。我在儿童活动中使用按钮返回主要活动。在我的活动中,我有一些动画,当我从孩子活动回到它时,我不想再次启动它。所以这里是儿童活动的家庭行动:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = NavUtils.getParentActivityIntent(this);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
NavUtils.navigateUpTo(this, intent);
return true;
}
return super.onOptionsItemSelected(item);
}
这里显而易见:
<activity
android:name=".ChildActivity"
android:label="@string/app_name"
android:parentActivityName=".MainActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
当我在 LG nexus 5 上使用 android 4.4.4 运行时,它运行正常但在 Xperia arc 中 android 4.0 .4 每次我返回主要活动时都会启动动画。解决方案是什么?
更新
我可以使用以下方法之一实现我想要的目标:
1-按下向上时只需拨打finish()
。
2-在向意图添加标记时使用Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP
。
但我想知道导致android 4.4.4和4.0.4中这种行为差异的原因。
提前致谢!
答案 0 :(得分:0)
根据Providing Up Navigation,您可以使用NavUtils.navigateUpFromSameTask(this);
而不是自己构建Intent
,因为这会正确处理标记以返回父活动。