Android服装:添加启动新活动的代码后,不会显示成功动画

时间:2016-06-14 10:32:57

标签: android wear-os

我想在Android Wear中显示成功动画后启动活动,但如果添加任何启动新活动的代码,则不会显示成功动画。

    //SUCCESS ANIMATION
    Intent intent = new Intent(this, ConfirmationActivity.class);
    intent.putExtra(ConfirmationActivity.EXTRA_ANIMATION_TYPE,
            ConfirmationActivity.SUCCESS_ANIMATION);
    intent.putExtra(ConfirmationActivity.EXTRA_MESSAGE,
            "Ok");
    startActivity(intent);
    //go to NewAtivity
    Intent inten2 = new Intent(MainActivity.this, NewActivity.class);
    MainActivity.this.startActivity(intent2);

1 个答案:

答案 0 :(得分:0)

这样做:

onCreate()或上述代码所在的位置:

Intent intent = new Intent(this, ConfirmationActivity.class);
intent.putExtra(ConfirmationActivity.EXTRA_ANIMATION_TYPE,
        ConfirmationActivity.SUCCESS_ANIMATION);
intent.putExtra(ConfirmationActivity.EXTRA_MESSAGE,
        "Ok");
startActivityForResult(1,null,intent);

onCreate()之外创建此方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode==1)
    {
        Intent inten2 = new Intent(MainActivity.this, NewActivity.class);
        MainActivity.this.startActivity(intent2);
    }
}

说明:您的早期代码存在问题

  

此行startActivity(intent);将启动ConfirmationActivity但是   不会等待ConfirmationActivity完成,但会   到达这条线后继续执行   MainActivity.this.startActivity(intent2);它将启动   无论动画是否结束,NewActivity都会立即生效。

此解决方案有助于:

  

我们这里使用的是startActivityForResult,而不仅仅是startActivity。   因为当ConfirmationActivity完成动画时   控件返回到您的MainActivity,我们将其捕获   onActivityResult并在那里启动NewActivity。