我想在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);
答案 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。