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.
我想在 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 lineMainActivity.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.