Android wear: 添加一个新的启动代码后不出现成功动画Activity

Android wear: The success animation does not appear after adding a code that starts a new Activity

我想在 Android Wear 中显示成功动画后启动一个 activity,但是如果我添加任何启动新 Activity 的代码,成功动画不会出现。

    //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);

这样做:

在您的 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);
    }
}

解释:您早期代码的问题

this line startActivity(intent); will start ConfirmationActivity but will not wait for the ConfirmationActivity to get finish but will continue the execution, upon reaching this line MainActivity.this.startActivity(intent2); it will start the NewActivity instantly irrespective of the animation has ended or not.

此解决方案有帮助,因为:

we here used startActivityForResult instead of just startActivity. because of that when the ConfirmationActivity finishes the animation the control returns to your MainActivity and we catch it in onActivityResult and start the NewActivity there.