Also, ich habe ein Problem in meinem Spiel zu debuggen, wo, wenn ich starten, dann stoppen Sie es wiederholt, ich habe bemerkt, dass manchmal eine Asynctask scheint nicht gestartet werden, auch wenn ich das Richtige zu tun scheinen, um es zu starten. Ich habe eine Menge unnötigen Code entfernt, um zu zeigen, was passiert, aber im Grunde sehe ich, dass ich dabei bin, eine Asynctask zu starten, aber die Aufgabe wird nie gestartet.
public void onStart()
{
super.onStart();
Log.d(TAG,"About to execute");
Play_level.execute();
}
AsyncTask<Void,Integer,Integer> Play_level=new AsyncTask<Void, Integer, Integer>(){
protected void onProgressUpdate(Integer ...time) {
//Stuff goes in here.
}
@Override
protected Integer doInBackground(Void... params) {
Log.d(TAG,"In Task");
}
};
Und das Logcat zeigt:
03-10 19:28:16.983: D/Level(1535): About to execute
03-10 19:28:17.503: D/Level(1535): onStop()
03-10 19:28:17.993: D/Level(1535): onPause()
03-10 19:28:19.174: D/AJEG(1535): Starting Tongue
03-10 19:28:19.313: D/Level(1535): ImageList Previously Loaded
03-10 19:28:19.313: D/Level(1535): About to execute
03-10 19:28:19.853: D/Level(1535): onStop()
03-10 19:28:20.283: D/Level(1535): onPause()
03-10 19:28:21.464: D/AJEG(1535): Starting Tongue
03-10 19:28:21.604: D/Level(1535): ImageList Previously Loaded
03-10 19:28:21.604: D/Level(1535): About to execute
03-10 19:28:22.134: D/Level(1535): onStop()
03-10 19:28:22.404: D/Level(1535): onPause()
03-10 19:28:23.504: D/AJEG(1535): Starting Tongue
03-10 19:28:23.644: D/Level(1535): ImageList Previously Loaded
03-10 19:28:23.644: D/Level(1535): About to execute
03-10 19:28:24.184: D/Level(1535): onStop()
Außerdem kann der Code offenbar auch durch erneutes Eingeben der Aufgabe nicht neu gestartet werden, wie der letzte Textabschnitt zeigt.
Um den Kontext zu verdeutlichen: Starting Tongue wird in der onStart() der übergeordneten Aktivität (AJEG) abgespielt, Level ist der Name der Aktivität, die ich gerade starte. Der ImageList-Befehl kann getrost ignoriert werden, aber ich habe ihn der Vollständigkeit halber eingefügt. Teil der doInBackground
enthält den Text "Starting Level _ ", wobei _ ist die Ebene, die gerade gestartet wird. onStop() und onPause() sind in der Methode, um zu zeigen, wann onStop()
y onPause()
in der Aufgabe Level auftreten.