处理后退按钮在使用动画的活动的过渡期间按下

时间:2013-04-23 12:53:40

标签: android performance

后退按钮导航问题: 按下后退按钮时 当活动变得生动时,如果按下后退按钮,它将导航到前一个活动两次。如何解决?

这是我们的代码

    final Intent intent = new Intent(getApplicationContext(), DrugHelp.class);
    ActivitySwitcher.animationOut(findViewById(R.id.container),getWindowManager(),
                new AnimationFinishedListener() {
                @Override
                public void onAnimationFinished() {
                startActivity(intent);
                finish();
                }});

3 个答案:

答案 0 :(得分:1)

试试这个:

public void onBackPressed() {
   this.finish();
}

如果它仍然返回两次,则在开始动画时将布尔值设置为true,并在上面的函数中添加

if(!yourBoolean){
   this.finish();
}

希望得到这个帮助。

答案 1 :(得分:1)

我认为DrugHelp是此前的Activity。它可能从未完成,所以它仍然在堆栈上。如果是这种情况,只需完成此Activivty即可转到尚未完成的上一个Intent Flags。如果已经存在,您还可以使用final Intent intent = new Intent(getApplicationContext(), DrugHelp.class); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 将其添加到堆栈的前面。

Intent.FLAG_ACTIVITY_CLEAR_TOP

如果你想确保堆叠上的所有其他Activities都被取消,你也可以使用{{1}}。

ReorderToFront

Other intent flags

答案 2 :(得分:0)

如果它只是您在onAnimationFinished侧启动的上一个活动,则不要调用startActivity,只需完成当前活动