2016-06-14 51 views
1

我想在Android Wear中顯示成功動畫後開始活動,但成功動畫不會出現,如果我添加任何啓動的代碼一個新的活動。Android磨損:添加開始新的代碼後,不會顯示成功動畫

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

@jankigadhiya我通過創建啓動ConfirmationActivity的意圖來凝視動畫,之後我創建另一個啓動「NewActivity」的意圖。 –

+0

我正在關注[this](https://developer.android.com/training/wearables/ui/confirm.html#show-confirmation「確認」)教程。如果我刪除代碼的第二部分(轉到NewAtivity),則出現確認活動。 –

回答

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。

+0

非常感謝!它的工作原理:) 你能告訴我我在第一個代碼中做錯了什麼嗎? –

+0

請參閱上述@Hr.SAAD的解釋 –