2016-05-16 13 views
0

Ich verwende den Freigabe-Dialog, um einen Text in Twitter mit dem Code unten zu teilen.Start Funktion nach Share Intent Android

postTweetAfterIntentVar = 1; 

Intent tweetIntent = new Intent(Intent.ACTION_SEND); 
tweetIntent.setAction(Intent.ACTION_SEND); 
tweetIntent.putExtra(Intent.EXTRA_TEXT, "tweet text here"); 
tweetIntent.setType("text/plain"); 
startActivity(Intent.createChooser(tweetIntent, "Share this via")); 

Und ich möchte eine Funktion starten, nachdem der Freigabevorgang beendet ist. Ich benutze den Code unten, aber nichts passiert, nachdem die Freigabeoperation mit der Absicht beendet ist. Mache ich etwas falsch? Jede Hilfe wäre großartig.

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 


    if (postTweetAfterIntentVar == 1) { 

     postTweetAfterIntentVar = 0; 

      postTweetFunc(); 


    } 


} 

Antwort

1

onActivityResult() wird nicht aufgerufen werden, wenn Sie Ihre Aktivität startActivity() mit starten.

onActivityResult() wird aufgerufen, sobald Sie eine Aktivität mit startActivityFoResult() und nicht startActivity() starten. Wenn Sie also die Aktivität mit startActivityFoResult() starten, setzt die aufgerufene Aktivität das Ergebnis unter Verwendung von setResult() und Sie erhalten dann das Ergebnis in onActivityResult().

+0

Hallo Shadab, also ersetzt startAktivity() mit startActivityForResult() genug? – saner

+0

Ja und in 'onActivityResult()' können Sie nach dem spezifischen 'requestCode' suchen. –