[Java] Android Activities

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Kerestrum, 3. Juli 2011 .

Schlagworte:
  1. 3. Juli 2011
    Android Activities

    Hallo,

    ich möchte in Android 2.3.3 Daten zwischen 2 Activities austauschen und versuche das über BroadcastReceiver zu machen. Allerdings springt er nie in den Receiver rein. Hier mal der Code:
    Code:
    //Ausschnitt der Klasse aus der gesendet wird
    IntentFilter inFi = new IntentFilter();
    registerReceiver(new test(), inFi);
    
    Intent i = new Intent();
    i.setAction(com.SendBroadcast.NEW_PULSE_DATA);
    sendBroadcast(i);
    
    // Klasse die von BroadcastReceiver erbt
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    
    public class test extends BroadcastReceiver{
    
     @Override
     public void onReceive(Context context, Intent intent) {
     // TODO Auto-generated method stub
     System.out.println("erhalten!!!");
     }
    
    }
    
    
    Laut Android developers reicht es wenn ich BroadcastReceiver im Code registriere, daher habe ich in der Manifest.xml nichts geändert.

    Hat jemand vielleicht eine Idee warum die onReceive() Methode von der test-Klasse nicht aufgerufen wird, wenn ich sendBroadcast aufrufe?
     
  2. 3. Juli 2011
    AW: Android Activities

    hast du den broadcast reveiver in deiner manisfest registriert?

    hier hast ein kleines tutorial:
    http://de.wikibooks.org/wiki/Googles_Android_-_Lehrbuch_zur_Programmierung:_Broadcast_Receiver

    willst du die daten zwischen 2 aktiven acitivity's austauschen oder beim start einer activity mitgeben bzw. beim beenden erwartest du daten?

    gruß
     
  3. 3. Juli 2011
    AW: Android Activities

    Das geht recht einfach mit intent
    Code:
    Intent intent = new Intent();
    intent.setClass(aktuelleactivity.this, aufzurufendeactivity.class);
    intent.putExtra("NAME","WERT);
    startActivity(intent);
    
    so gehts recht einfach. in der aufgerufenden Activity kannste die werge so abfragen:
    Code:
    getIntent().getExtras().getString("NAME");
    statt getString gibts auch getInt oder andere

    Nicht vergessen die Activity in der Manifest einzutragen.
     
  4. 3. Juli 2011
    AW: Android Activities

    Hallo,

    danke für die Hilfe es lag an der Registrierung in der Manifest.xml. Jetzt hab ich aber noch das Problem, dass ich zwischen den Activities Daten austauschen will und ich bekomme dabei immer ein invokation exception. Innerhalb einer Activity funktioniert alles wunderbar. Ist das überhaupt möglich mit dem BroadcastReceiver Daten aus einer anderen Activity zu bekommen, weil die ist ja eigentlich angehalten, wenn eine 2. Activity im Vordergrund ist. Oder kann man das Problem vielleicht noch anders lösen.
     
  5. 4. Juli 2011
    AW: Android Activities

    probiers doch einfach mal wie ich gesagt hab mit Intent Da brauchste kein BraodcastReceiver vielleicht läufts dann.
     
  6. 4. Juli 2011
    AW: Android Activities

    Also wenn ich das jetzt richtig gelesen habe wäre das ganze mit einer Callback-Methode denkbar.
    Vielleicht hilft dir der folgende Artikel über SubActivity ja weiter.

    http://developerlife.com/tutorials/?p=302

    Die 1te Activity wird hierbei soweit ich weiß nicht angehalten.
     
  7. 4. Juli 2011
    AW: Android Activities

    @Fuselmeister das mit den Intents geht immer nur vor dem Aufruf wenn ich aber nach dem ich die startActivity(intent) aufgerufen haben konnte ich keine neuen Nachrichten mehr damit übertragen. Ich hab gelesen dass die Intent die man für das erzeugen von einer Activity verwendet und die für BroadcastReceiver komplett unterschiedlich sein sollen.
    BroadcastReceiver | Android Developers

    "Note that, although the Intent class is used for sending and receiving these broadcasts, the Intent broadcast mechanism here is completely separate from Intents that are used to start Activities with Context.startActivity(). There is no way for a BroadcastReceiver to see or capture Intents used with startActivity(); likewise, when you broadcast an Intent, you will never find or start an Activity. These two operations are semantically very different: starting an Activity with an Intent is a foreground operation that modifies what the user is currently interacting with; broadcasting an Intent is a background operation that the user is not normally aware of."

    Und ich will gewissermaßen eine background Operation durchführen und keine foreground Operation.
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.