Ich versuche, eine Aktivität zu starten, wenn ich einen eingehenden Anruf für mein Android-Handy bekam. Dafür starte ich im Rufzustand eine Aktivität und setze einige Flags, um diese Aktivität nach vorne zu bringen. Hier ist der Code:Bringen Sie eine Aktivität nach vorne in android Broadcast Reciever
Intent intent2open = new Intent(ctx, Main.class);
intent2open.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
intent2open.setAction("android.intent.action.VIEW");
intent2open.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent2open.setAction(Intent.ACTION_MAIN);
intent2open.addCategory(Intent.CATEGORY_LAUNCHER);
intent2open.putExtra(name, value);
startActivity(intent2open);
von oben Code, ich habe nicht meine erforderliche Ausgabe, einige Fälle App gestartet wird, wenn ich meinen Anruf angenommen oder abgelehnt. In einigen anderen Fällen wird es gestartet, wenn der Status klingelt. Ich kann dieses Problem nicht beheben. Wie kann ich meine Aktivität nach vorne bringen?
Vielen Dank im Voraus, Lokesh.
Danke Waqas, schon habe ich meinen Klassenmodus als singleTop. Aber keine Verwendung .. –
Wenn es auch noch eine andere Aktivität geben soll (in Ihrem Fall Call-Aktivität), dann ist es ungewiss zu wissen, welches als erstes darauf kommt, wer zuerst Broadcast empfängt - je nach Priorität. Siehe meine aktualisierte Antwort: http://developer.android.com/guide/topics/manifest/intent-filter-element.html#priority – waqaslam
Abgesehen von Ihren Code-Zeilen habe ich meinen Klassenstartmodus auf "singleInstance" geändert. –