2017-01-08 2 views
0

Von meiner Android App möchte ich den nativen Ereigniserstellungsbildschirm anzeigen können und wenn der Benutzer "Fertig" drückt, wird das Ereignis erstellt und ich möchte automatisch zu meiner App zurückkehren. Was jetzt passiert, ist, dass die native Kalender-App geöffnet wird und der Benutzer die Zurück-Taste drücken muss, um zu meiner App zurückzukehren.Wie kann man nach dem Start einer Aktivität mit Absicht zur App zurückkehren?

Dies ist mein Code:

public void onButtonClicked(View view) { 
    Intent intent = new Intent(Intent.ACTION_EDIT); 
    intent.setType("vnd.android.cursor.item/event"); 
    intent.putExtra(Events.TITLE, "New event"); 
    intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, new Date().getTime()); 
    intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, new Date().getTime() + 1000 * 60 * 60); 
    startActivityForResult(intent, 1); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    System.out.println("onActivityResult!"); 
} 

Auch wird onActivityResult(...) nie genannt. Irgendwelche Vorschläge sind willkommen!

Antwort

0

Zunächst ist ACTION_EDIT nicht für die Verwendung mit startActivityForResult(), wie it does not return anything konzipiert.

Darüber hinaus ist die Entscheidung, was zu tun ist, wenn der Benutzer die Bearbeitung eines Kalenderereignisses abschließt, Sache der Implementierer der Kalender-App. Sie delegieren Arbeit an eine Drittanbieter-App; Was die Drittanbieter-App tut, hängt von ihren Entwicklern ab. Dies ist nicht anders als das Verknüpfen Ihrer Website mit der Website einer anderen Person: Sie wählen nicht, was diese Website tut.

Darüber hinaus gibt es keine einzelne "die native Kalender App". Es gibt Tausende von Android-Gerätemodellen und im Prinzip können sie mit allem, was sie wollen, ausgeliefert werden. Dazu gehören null, eine oder mehrere Aktivitäten, die auf Ihre Intent reagieren. Geräte mit dem Play Store wahrscheinlich haben Google Kalender installiert, aber nicht unbedingt, und der Benutzer kann eine andere Kalenderanwendung verwenden (z. B. eine, die sie im Play Store oder anderswo installiert haben). Es ist also nicht nur die Entscheidung, was zu tun ist, wenn der Benutzer den Kalendereintrag bis zu den Entwicklern der Kalender-App bearbeitet, sondern auch viele Kalender-Apps mit eigenen Entwicklern und eigenen Entscheidungen in diesem Bereich.

Wenn Sie eine Drittanbieter-App starten, machen Sie nicht viele Annahmen über den resultierenden Navigationsfluss. Wenn Sie diesen Grad an Kontrolle benötigen, müssten Sie in diesem Fall Ihre eigenen Kalenderfunktionen schreiben und sie in Ihrer App erstellen.

+0

Habe ich erwähnt, dass ich nicht viel Erfahrung mit Absichten habe? Haha. Danke für deine schnelle Antwort. Gibt es zufällig eine Möglichkeit, den Standardbildschirm für die Kalendereingabe zu öffnen, ohne Absichten zu verwenden? Ich müsste wahrscheinlich nach einer Standard-Open-Source-Komponente suchen, die das tut. –

+1

@TomvanZummeren: "Gibt es zufällig eine Möglichkeit, den Standardbildschirm für die Kalendereingabe zu öffnen, ohne Absichten zu verwenden?" - Es gibt keinen "Standard-Kalendereingabebildschirm". – CommonsWare

+0

Eigentlich komme ich von iOS, und ich war einfach auf der Suche nach einem Äquivalent des EKEventEditViewController, aber ich denke, dass es so etwas auf Android nicht gibt. –

Verwandte Themen