Hallo,
ich möchte direkt beim Programmstart einen Service starten,
aber der will einfach nicht starten.
Im Manifest habe ich ihn eingetragen.
[XML][/XML]
Der Aufruf sieht so aus:
Intent startObserveUnitIntent = new Intent(context, ObserveUnit.class);
Bundle extras = new Bundle();
extras.putInt("unitOfTime", FREQUENCE_TO_OBSERVE_UNIT); // TAKTUNG = 200
startObserveUnitIntent.putExtra("values", extras);
context.startService(startObserveUnitIntent);```
Und hier die ObserveUnit.class:
```public class ObserveUnit extends Service {
private static final String TAG = "ObserveUnit";
public static final String ACTION_BROADCAST = "com.nh.fup.service.OBSERVE_UNIT";
private ObserveUnitBinder mBinder = new ObserveUnitBinder();
private Timer mTimer;
public class ObserveUnitBinder extends Binder {
public ObserveUnitBinder(){
Log.i(TAG, "1. ObserveUnitBinder");
}
}
@Override
public void onCreate() {
Log.i(TAG, "2. onCreate");
super.onCreate();
mTimer = new Timer();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(TAG, "3. onStartCommand " + flags + ", " + startId);
mTimer.schedule(mTimerTask, 0);
return super.onStartCommand(intent, flags, startId);
}
private TimerTask mTimerTask = new TimerTask() {
@Override
public void run() {
Log.i(TAG, "run"); // WIRD NICHT ANGEZEIGT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
final Intent broadcastIntent = new Intent(ACTION_BROADCAST);
getApplicationContext().sendBroadcast(broadcastIntent);
}
};
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
@Override
public void onDestroy() {
super.onDestroy();
mTimer.cancel();
}
}```
In dieser Klasse (s.o) werden ObserveUnitBinder(), onCreate() und onStartCommand() aufgerufen,
aber nie die Methode run(), die ja schlussendlich den Call sendet.
Entsprechend kann ich in der onReceive()-Methode nichts entgegennehmen.
Ich habe den Eindruck, dass ich irgendwo eine Kleinigkeit nicht sehe.
**Warum wird run() nicht aufgerufen?**
:ka: