Beiträge von Desperate

    Gleicher Effekt, wenn ich den Intent im onCreate ausführe: Beim Aufstart MEINER App blitzt der Splashscreen der Fremdapp eine halbe Sekunde auf, dann sehe ich meine eigenen zwei Buttons. Ich glaube wirklich nicht, dass es an MEINER App liegt, aber an der fremden offensichtlich auch nicht. Was kann es dann jedoch sein?


    Vielleicht hilft das noch weiter: Wenn ich meinen Button ein ZWEITES (oder drittes usw) Mal drücke, um die Fremdapp aufzustarten, passiert gar nichts mehr, ich sehe dann den Splashscreen der Fremdapp überhaupt nicht mehr.

    Hallo jogimuc


    Ein leerer Intent bringt nichts. Würde mich auch überraschen, denn wie in der Original-Post #1 geschrieben: Die Fremdapp startet ja auf - aber stürzt eine halbe Sekunde nach Aufruf ab (oder terminiert regulär). Zur Klarheit: MEINE App stürzt nicht ab, nur die Fremdapp. Ich interpretiere das so: Mein Intent-Aufruf ist korrekt, die Kontrolle wird tatsächlich der Fremdapp übergeben, und somit ist diese selber und nicht meine App am Absturz der Fremdapp "schuld". Aber: vom App-Drawer aus und aus der App "APK-Analyzer" startet diese Fremdapp eben doch korrekt ohne Absturz auf, also liegt auch kein Programmierfehler in der Fremdapp vor. Wo steckt dann aber der Fehler?


    Um noch deine anderen Fragen zu beantworten:


    - Nach dem Start erscheint 0,5 Sec lang der Splashscreen der Fremdapp, dann stürzt diese (nicht meine) ab
    - Ausgeführt wird der Intent im onClick eines Buttons. Meine App ist äusserst simpel und besteht eigentlich nur aus zwei Buttons, die je eine andere Fremdapp aufrufen. Der andere Button meiner App funktioniert perfekt.
    - Richtiger Context: ähhh, da weiss ich als Anfänger nicht, was du meinst. Ist in meiner App - glaub ich - aber auch nicht nötig (?)
    - nicht verwunderlich: bei ausgetestetem try-catch wird der catch-Teil nie ausgeführt (die Fremdapp startet ja)

    Hallo jogimuc


    Hier mein Code:


    Code
    Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_LAUNCHER);
            intent.setClassName("com.interactivespace.fallerifallera","com.interactivespace.fallerifallera.FalleriFalleraActivity");
            startActivity(intent);


    Und das ist der Intent-Filter von FalleriFallera:


    Code
    <activity 
          android:configChanges="keyboardHidden|orientation|screenSize"
          android:label="@string/app_name"
          android:name=".FalleriFalleraActivity"
          android:theme="@style/Theme.Titanium">
          <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
        </activity>

    Hallo


    Ich stehe vor einem für mich ganz grossen Rätsel: Ich habe eine App geschrieben, die mit einem Intent eine weitere (funktionierende) App meines Smartphones öffnen soll. Das funktioniert im ersten Moment auch (Splashscreen der Fremd-App erscheint), aber nach einer halben Sekunde stürzt die Fremd-App ab (oder sie schliesst regulär). Scheint ein Bug in der Fremd-App zu sein. Aber: Rufe ich diese Fremdapp mit dem Icon auf dem Homescreen auf, funktioniert sie tadellos. Mehr noch: Ich habe u.a. die App "APK-Analyzer" (von Martin Styk) aus dem PlayStore installiert. Diese zeigt mir alle Activities der obigen problematischen App an. Es gibt davon nur eine einzige ausführbare. Man kann diese mit dem Button "Run" im APK-Analyzer ausführen, und auch das funktioniert ohne Probleme. Der APK-Analyzer kann also diese Drittapplikation per Intent aufrufen, mein Programm aber nicht. Das versteh' ich jetzt gar nicht. Kann mir das jemand erklären? In welche Richtung muss ich denken? Und natürlich: Wie kann ich diese (bis jetzt abstürzende) App korrekt aufrufen?


    Übrigens: Der Intent-Filter der obigen problematischen App ist standardmässig. Und von meinen etwa 100 Apps gibt's noch 2 weitere, die dieses Startverhalten zeigen (z.B. TripAdvisor, da erscheint nicht mal der Splashscreen, und das liegt nicht an einem Tippfehler meinerseits), alle andern lassen sich starten...


    Danke fürs Mitdenken!

    Hallo Ryan


    Bingo, that's it! Danke für den Tipp (und auch für die Mühe von jogimuc)! In einem Punkt bin ich allerdings nicht deiner Meinung: Toasts sind nicht zu träge: Ein neuer Toast überschreibt sofort den alten, so dass die Anzeige auch beim schnellen Wischen aktuell ist. Genau wie dein Textelement. Aber der Toast hat noch den Vorteil, dass er den ganzen Screen freigibt für die Anzeige des Rezepts.


    Als Anfänger interessiert mich jetzt aber auch: Woher weiss man, dass es einen OnPageChangeListener gibt und eine Methode onPageSelected? Wo sind solche Dinge dokumentiert?

    Neuste Erkenntnis: Habe den Toast durch einen Beep ersetzt: Ersetze ich den Toast in Antwort 1, so höre ich beim Wischen zu neuen Seiten den Pieps. Ersetze ich den Toast in Antwort 4, höre ich nichts. Wird getPageTitle gar nie aufgerufen?

    Hallo jogimuc


    Danke für deine beiden Antworten. Entschuldige meine Reaktionsgeschwindigkeit, hatte einen computerfreien Familiensonntag :) ...
    Deine zweite Idee war vielversprechend, zumal ja AndroidStudio die Methode getPageTitle schon im erzeugten Template enthält. Aber mein Code


    Code
    public CharSequence getPageTitle(int position) {
      Toast.makeText(getApplicationContext(), String.valueOf(position+1), Toast.LENGTH_SHORT).show();
      return null;
    }

    produziert KEINEN sichtbaren Toast. Hab ich da den falschen Context (1. Parameter) angegeben?


    Mit deiner ersten Antwort kann ich als Anfänger noch nicht viel anfangen. Hab ich überhaupt ein Event OnClick, wenn ich durch die Seiten wische? Wenn du der Meinung bist, dass es so auch klappen sollte, könntest du deine erste Idee etwas detailierter für mich erläutern? Danke schon jetzt.


    Das Problem ist also immer noch ungelöst...

    Hallo Profis


    Ich schreibe meine erste App (Kochrezeptsammlung) und habe dazu in AndroidStudio die "TabbedActivity" und dann "SwipeViews (ViewPager)" gewählt, um mir pro Seite ein Rezept anzuzeigen. Soweit funktioniert alles. Nun möchte ich, dass beim Blättern durch die Seiten kurz die Seitennummer mit dem Befehl "Toast" angezeigt wird. Das funktioniert allerdings nur fast: Starte ich mit der ersten Seite, zeigt Toast zunächst wie gewünscht "Seite 1", nach 2 Sekunden erscheint aber ohne mein Dazutun ein weiterer Toast mit Inhalt "Seite 2". Offensichtlich wurde im Hintergrund schon mal im Voraus Seite 2 erzeugt und damit in "onCreateView" ein weiterer Toast ausgelöst. Dieser Effekt bleibt auch beim Weiterblättern erhalten. Wie mache ich das aber besser?


    Meine Programmstruktur sieht bis jetzt folgendermassen aus:


    Danke für jeden Hinweis! Bernhard