2016-06-14 9 views
1

Ich möchte eine Aktivität starten, nachdem ich eine Erfolgsanimation in Android Wear angezeigt habe. Die Erfolgsanimation wird nicht angezeigt, wenn ich Code hinzufüge eine neue Aktivität.Android Wear: Die Erfolgsanimation erscheint nicht nach dem Hinzufügen eines Codes, der eine neue Aktivität startet

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

zeigen Sie uns, wie Sie die Animation starten ?? –

+0

@jankigadhiya Ich starre die Animation an, indem ich eine Absicht erstelle, die ConfirmationActivity startet und danach eine andere Absicht, "NewActivity" zu starten. –

+0

Ich befolge [diese] (https://developer.android.com/training/ wearables /ui/confirm.html#show-confirmation "Bestätigung") Tutorial. Die Bestätigungsaktivität wird angezeigt, wenn ich den zweiten Teil des Codes entferne (gehe zu NewAtivity) –

Antwort

0

Machen Sie es wie folgt aus:

in Ihrem onCreate() oder wo auch immer der obige Code ist:

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

außerhalb onCreate() diese Methode erstellen:

@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); 
    } 
} 

Erläuterung: Der Problem mit Ihrem früheren Code

diese Linie startActivity(intent); wird ConfirmationActivity beginnen, aber nicht für die ConfirmationActivity warten Finish zu erhalten, aber wird die Ausführung fortsetzen, bei Erreichen dieser Linie MainActivity.this.startActivity(intent2); den NewActivity unabhängig sofort startet der Animation beendet ist oder nicht.

Diese Lösung, da half:

wir hier startActivityForResult statt nur startActivity verwendet. deshalb, wenn die ConfirmationActivity die Animation beendet, kehrt das Steuerelement zu Ihrer MainActivity zurück und wir fangen es in onActivityResult ab und starten die NewActivity dort.

+0

Vielen Dank! es funktioniert :) Könnten Sie mir bitte sagen, was ich in meinem ersten Code falsch gemacht habe? –

+0

siehe die obige Erklärung @ Hr.SAAD –