0

Ich habe eine Aktivität und eine Ansicht für meine Apps erstellt. Innerhalb der Ansicht habe ich einen Thread, der sich wie ein Server verhält.Wie kann die Aktivität aus der Sicht entfernt werden? oder wie man beide zerstört?

public class MainActivity extends Activity { 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(new MainView(this)); 
} 
} 

public class ServerView extends View { 

public ServerView(Context context) { 
    super(context); 
     server.startServer(); 
} 
} 

wenn ich gedrückt backbutton, Meine Apps wasnt destroyed.I es manuell zerstört, aber mein Thread im Hintergrund läuft noch. Ich muss BackButton-Ereignis zu fangen, so dass ich diese

verwendet diese Funktion kann nicht aufhören meinen Thread. Ich weiß nicht, wie ich meine Hauptaktivität aus der Sicht zerstören kann? irgendein Vorschlag?

Antwort

0

Put dieser Code in Haupttätigkeit und greifen Sie von Ihrem Server Ansicht

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
     server.shutDown(); 
    } 
    return super.onKeyDown(keyCode, event); 
    } 

Zugang Aktivitätsobjekt in Ihrem Server und rufen Sie diesen Code

0

Sie besser Activity.finish() Methode außer Kraft setzen würde und alle besetzt löschen Ressourcen (wie server.shutDown() in Ihrem Fall) dort.

0

rufen Sie einfach finish() es funktioniert, wie Sie

0

möchten, können Sie Finish() -Methode zu zerstören Ihre Aktivitäten nutzen. Und der Thread läuft im Hintergrund verwenden return-Anweisung zu zerstören oder

if(thread != null) 
{ 
    Thread t1 = thread; 
    thread = null; 
    t1.interrupt(); 
} 
0

Meiner Meinung nach, wenn Sie Aktivität zerstören wollen, können Sie Activity.finish() verwenden. Wenn Sie einen Thread löschen möchten, können Sie System.exit(0);

Verwandte Themen