Webster
Erfahrenes Mitglied
- 25
Hallo beisammen,
ich versuche momentan in einem Service (android.app.Service) in einem bestimmten Abstand einen Timer zu starten :
Dies funktioniert auch, aber ich möchte in diesem TimerTask ein Thread erstellen, der Daten aus dem Web holt und einen Callback-Handler auslöst, wenn die Daten vorhanden sind. Egal wie ich es versuche, entweder hängt sich meine GUI auf oder der Callback-Handler wird nicht ausgelöst. Das heißt es stimmt etwas mit dem Thread nicht.
Kann es sein, dass in einer run() keine weitere run() aufgerufen werden darf?
Oder sieht jemand meinen Denkfehler?!?
Gruß
Webster
ich versuche momentan in einem Service (android.app.Service) in einem bestimmten Abstand einen Timer zu starten :
Code:
Timer timer = new Timer();
int delay = 0;
int period = 60000;
timer.scheduleAtFixedRate(
new TimerTask(){
@Override
public void run() {
GetDataFromServerThread(new getHandler());
}
}
, delay, period);
Dies funktioniert auch, aber ich möchte in diesem TimerTask ein Thread erstellen, der Daten aus dem Web holt und einen Callback-Handler auslöst, wenn die Daten vorhanden sind. Egal wie ich es versuche, entweder hängt sich meine GUI auf oder der Callback-Handler wird nicht ausgelöst. Das heißt es stimmt etwas mit dem Thread nicht.
Code:
private void GetDataFromServerThread(final Handler threadCallbackHandler){
Thread conThread = new Thread(){
@Override
public void run(){
String ConRes = getDataFromServer();
Message msg = new Message();
Bundle bundle = new Bundle();
bundle.putString("ConResult", ConRes);
msg.setData(bundle);
threadCallbackHandler.sendMessage(msg);
}
};
conThread.start();
}
private Handler getHandler() {
final Handler threadCallbackHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
Bundle bundle = msg.getData();
mConResult = bundle.getString("ConResult") ;
super.handleMessage(msg);
}
};
return threadCallbackHandler;
}
Kann es sein, dass in einer run() keine weitere run() aufgerufen werden darf?
Oder sieht jemand meinen Denkfehler?!?
Gruß
Webster