2016-04-03 8 views
0

Ich versuche, Code zu erstellen, um eine Anwendung programmgesteuert zu beenden, wenn die Home-Taste gedrückt wird. Ich habe versucht, die folgenden:Wie kann ich Android-App programmgesteuert beenden, wenn die Home-Taste gedrückt wird?

protected void onStop() { 
    super.onStop(); 
    android.os.Process.killProcess(android.os.Process.myPid()); 
    super.onDestroy(); 
    this.finish(); 
    System.exit(1); 
} 

aber es funktioniert immer noch nicht. Das Programm läuft immer noch im Hintergrund. irgendwelche Ideen?

+1

"eine App programmatisch beenden, wenn die Home-Taste gedrückt wird" - warum? "Das Programm läuft immer noch im Hintergrund" - wie haben Sie das festgestellt? – CommonsWare

+0

Aus der Dokumentation: "Kill den Prozess mit der angegebenen PID. Beachten Sie, dass, obwohl diese API uns erlaubt, jeden Prozess auf der Basis seiner PID zu töten, der Kernel weiterhin Standard-Einschränkungen, welche PIDs Sie tatsächlich töten können auferlegt. " Dies bedeutet, dass selbst dann, wenn der Anruf nicht fehlschlägt (keine Ausnahme), möglicherweise keine Wirkung auftritt. – Machinarius

Antwort

-2

Erstellen Sie die folgende Konstante in Ihrer Klasse:

public static final int KEYCODE_HOME 

Aufschalten onAttachedToWindow Methode:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) {  

    if(keyCode == KeyEvent.KEYCODE_HOME) 
    { 
     //This will close the current activity 
     finish(); 
    } 
}); 

ein Nehmen:

@Override 
public void onAttachedToWindow() { 
    super.onAttachedToWindow(); 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);   
} 

und einen Hörer für die Home-Taste eingestellt gedrückt wird sieh dir das an: Intercept Home Key

Hoffe, das hilft!

+0

Bitte kopieren Sie den Inhalt dieses Links, um eine vollständige, richtige Antwort zu erstellen. –

+0

Einfach repariert, danke! –

+0

dieser Code funktioniert nicht mehr .... – simsim