Wie erstelle ich eine Android-Absicht, die Daten trägt?

Ich hätte vielleicht falsch verstanden, wie Intentionen verwendet werden sollen, also könnte ich hier die falsche Frage stellen. Wenn das der Fall ist, bitte helfen Sie mir, auf den richtigen Weg zu gehen, trotzdem …

Ich habe gerade angefangen, an einer Android-App zu arbeiten, die meinen Server für Nachrichten alle so oft abfragt, und wenn eine neue Nachricht verfügbar ist, möchte ich es dem Benutzer zeigen. Ich versuche, dies zu implementieren, indem ich einen Service , der den Server abfragt, und wenn eine neue Nachricht empfangen wird, sollte der Dienst die Nachricht einer Activity , die es zeigt.

  • MediaStore.EXTRA_OUTPUT macht Daten null, andere Möglichkeit, Fotos zu speichern?
  • Wie kann man die installierte Anwendung zur Laufzeit überprüfen, um Phishing-Angriffe zu verhindern?
  • Wie bekomme ich Benutzernamen, Telefon und E-Mail von PayPal Mobile Payment Library
  • Starten Sie eine neue Aktivität ohne Übergangsanimation in Android 1.6
  • Debugging Intents
  • Wie bekomme ich die Benutzerauswahl von startActivityForResult (Intent.createChooser (fileIntent, "Datei öffnen mit ..."), APP_PICKED) ;?
  • Um diese Kommunikation zu erleichtern, versuche ich, eine Intent mit ACTION_VIEW zu erstellen, aber ich kann nicht herausfinden, wie man die Nachricht der Aktivität gibt. Gibt es keine Möglichkeit, einen String oder ein reguläres Java-Objekt über die Absicht zu übergeben?

    Für was es sich lohnt, das möchte ich machen:

     getApplication().startActivity(new Intent(MessageService.this, ViewMessageActivity.class, message)); 

    Aber natürlich, das ist nicht einmal kompilieren.

  • So starten Sie eine Aktivität aus der benutzerdefinierten Ansicht
  • Der Konstruktor Intent (neuer View.OnClickListener () {}, Klasse <DrinksTwitter>) ist undefiniert
  • Absicht löschen
  • Android: Nehmen Sie das Kamerabild ohne "save" / "löschen" Bestätigung
  • Wie bekomme ich das Ergebnis von Child-Aktivität auf Eltern in Android zurück?
  • Android TV startet nicht LAUNCH_LEANBACK Aktivität
  • 3 Solutions collect form web for “Wie erstelle ich eine Android-Absicht, die Daten trägt?”

    Verwenden Sie das Absichtsbündel, um zusätzliche Informationen hinzuzufügen, so wie:

     Intent i = new Intent(MessageService.this, ViewMessageActivity.class); i.putExtra("name", "value"); 

    Und auf der Empfangsseite:

     String extra = i.getStringExtra("name"); 

    Oder, um alle Extras als Bündel zu bekommen, unabhängig vom Typ:

     Bundle b = i.getExtras(); 

    Es gibt verschiedene Unterschriften für die putExtra() Methode und verschiedene Methoden, um die Daten abhängig von ihrem Typ zu erhalten. Sie können hier mehr sehen: Absicht , putExtra .

    EDIT: Um ein Objekt weiterzugeben, muss es Parcelable oder Serializable implementieren, so dass Sie eine der folgenden Signaturen verwenden können:

    PutExtra (String name, Serializable value)

    PutExtra (String name, Parcelable value)

    Sie können Folgendes tun, um Informationen in das Absichtsbündel hinzuzufügen:

      Intent i = new Intent(MessageService.this, ViewMessageActivity.class); i.putExtra("message", "value"); startActivity(i); 

    Dann können Sie in der Aktivität so abrufen:

      Bundle extras = getIntent().getExtras(); String message = extras.getString("message"); 

    Starten der Aktivität von Ihrem Dienst jedes Mal, wenn eine neue Nachricht empfangen wird, kann nicht sein, was Sie wollen. Zum Beispiel, wenn Sie eine andere Aktivität sehen, werden Sie durch die neue Nachricht unterbrochen.

    Sie können sendBroadcast (Absicht) zusammen mit einem BroadcastReceiver verwenden, um eine Aktivität zu benachrichtigen, die eine neue Nachricht erhalten hat.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.