Wenn ich eine Aktivität von einem Widget aus starte, möchte ich, dass die Schaltfläche "Zurück" zum Startbildschirm zurückkehrt, aber stattdessen wird die Hauptaktivität der Anwendung angezeigt. Nach einigem Herumprobieren habe ich festgestellt, dass dieses Problem nicht auftritt, wenn ich die Hauptaktivität der App irgendwie schließe. Seltsam.
Ich habe eine Lösung gefunden aquí die besagt, dass ich finish(); in der onPause() meiner Hauptaktivität aufrufen soll. Offensichtlich ist dies die falsche Lösung z.B. Neuausrichtung des Bildschirms verursacht eine onPause() so die Aktivität wird sterben, wenn das Telefon gedreht wird.
So beginne ich meine Tätigkeit:
@Override
public void onReceive(Context context, Intent intent) {
[...]
//new Emergency().emDialog(context).show();
Intent myIntent = new Intent(context, EmergencyActivity.class);
// FLAG_ACTIVITY_NEW_TASK is needed because we're not in an activity
// already, without it we crash.
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myIntent);
Den Rest des Codes finden Sie unter http://code.google.com/p/emergencybutton/source/browse
edit: Ich habe versucht, die Aktivität anders auszuführen, aber sie funktioniert immer noch nicht richtig:
Intent myIntent = new Intent();
myIntent.setClassName("com.emergency.button", "com.emergency.button.EmergencyActivity");