Die Android-Absicht startSctivityForResult wird nicht ordnungsgemäß zurückgegeben

Ich habe Aktivität und Absicht.

  • mainActivity - Normale Hauptaktivität
  • intentActivity - Für Twitter OAth Anfrage Browser wird von dieser Aktivität gestartet

Woher weiß ich, ob die Absichtsaktivität korrekt ist? In mainAvtivity habe ich folgende Codes verwendet

In Onclick eines Knopfes benutzte ich:

startActivityForResult(i,request_code);

Auch ich habe folgende Funktion hinzugefügt

public void onActivityResult(int requestCode,int resultCode,Intent data)
{
  if(requestCode==1) 
   {
    if(resultCode==RESULT_OK)
      {
          Toast.makeToast(getBaseContext(),"Success",Toast.LENGTH_SHORT)
      {
     else
      {
          Toast.makeToast(getBaseContext(),"Failed",Toast.LENGTH_SHORT)
      }
  }
}

Aber zu meiner Überraschung bekomme ich "Failed" , bevor der Browser geöffnet wird. Aber ich möchte, dass Erfolg nach der Rückkehr vom Browser angezeigt wird.

2
rufst du setResult bei deiner zweiten Aktivität an?
hinzugefügt der Autor aleph_null, Quelle
Nein, ich denke, ich habe nur über Kontakte Beispiel .. Als sie Intent an content.Intent.ACTION_PICK übergeben erhalten sie standardmäßig Ergebniscode. Ist diese Standardaktion nur für Systemabsichten?
hinzugefügt der Autor shanmugamgsn, Quelle

1 Antworten

Sie müssen sicherstellen, dass vor dem Anruf in Ihrem IntentActivity beenden, dass Ihr Anruf setResult() und setze es auf Erfolg.

1
hinzugefügt
Ich verstehe deine Frage nicht.
hinzugefügt der Autor Kurtis Nusbaum, Quelle
Danke Kurtis. Ich habe Zweifel, dass ich einem Contacts Beispiel gefolgt bin. Wie sie Intent zu content.Intent.ACTION_PICK übergeben, erhalten sie Ergebniscode standardmäßig. Ist diese Standardaktion nur für Systemabsichten?
hinzugefügt der Autor shanmugamgsn, Quelle
Actual Scenario ist eine Update-Schaltfläche, die diese Twitter-Intent-Aktivität aufruft, die wiederum den Browser öffnet und OAth-Token initialisiert und automatisch zu meiner MainActivity umleitet. Aber hier wünsche ich mir, wenn es umgeleitet wird, muss ich benachrichtigt werden.
hinzugefügt der Autor shanmugamgsn, Quelle
Wie du gesagt hast, habe ich setResult kurz vor context.startActivity (new Intent (context, mainActivity.class)); hinzugefügt, aber wenn ich das Ergebnis in onActivityResult() zurückbekomme, ist sein Wert 0 (bedeutet RESULT_CANCELLED). Ich habe keine Absicht abgesagt, die es nur richtig umgeleitet hat?
hinzugefügt der Autor shanmugamgsn, Quelle