Autore Topic: Service : è l'onStartCommand ???  (Letto 1755 volte)

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Service : è l'onStartCommand ???
« il: 25 Luglio 2011, 15:23:10 CEST »
0
Non sò se è mai capitato a qualcuno, stò creando un service con questo codice :
Codice (Java): [Seleziona]
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;

public class Service_Utils extends Service{

        @Override
        public void onCreate() {
                // TODO Auto-generated method stub
                super.onCreate();
        }
       
       
        @Override
        public IBinder onBind(Intent intent) {
                // TODO Auto-generated method stub
                return null;
        }

}

il problema, come vede anche dall'immagine che vi allego, è che tra i metodi di cui posso fare l'override non trovo l'onStartCommand stò impazzendo! se provo a metterlo io manualmente mi dice di togliere l'override....  :'( :'(

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Service : è l'onStartCommand ???
« Risposta #1 il: 25 Luglio 2011, 15:33:34 CEST »
0
Ho capito, onStartCommand ha le API level 5, la mia app 4 :( e mò ? a me serviva ma non voglio alzare il minSDK !

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:Service : è l'onStartCommand ???
« Risposta #2 il: 25 Luglio 2011, 16:38:44 CEST »
+1
La bellissima e utilissima documentazione di Android riguardante i Service cita :

Codice (Java): [Seleziona]
// This is the old onStart method that will be called on the pre-2.0
// platform.  On 2.0 or later we override onStartCommand() so this
// method will not be called.
@Override
public void onStart(Intent intent, int startId) {
    handleCommand(intent);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    handleCommand(intent);
    // We want this service to continue running until it is explicitly
    // stopped, so return sticky.
    return START_STICKY;
}

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Service : è l'onStartCommand ???
« Risposta #3 il: 25 Luglio 2011, 17:32:29 CEST »
0
Quindi è come immaginavo!  la mia applicazione essendo API level 4 non può esare lo onStartCommand ma solo onStart....   :-X

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:Service : è l'onStartCommand ???
« Risposta #4 il: 25 Luglio 2011, 18:35:39 CEST »
0
Ma no tutt'altro...il minSdkVersion puoi lasciarlo a 4 per retrocompatibilità, mentre userai un api level maggiore per la tua applicazione in modo da usare il codice postato prima, nonchè citato come esempio dalla doc di Android. Così sarà retrocompatibile per piattaforme inferiori alla 2.0

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Service : è l'onStartCommand ???
« Risposta #5 il: 25 Luglio 2011, 19:17:16 CEST »
0
No scusa non ho capito....allora...io nella mia applicazione ho il minSdkVersion=4 ed il targetSdkVersion a 10, ma il problema sussiste cioè non mi fa inserire l'onStartCommand.....

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Service : è l'onStartCommand ???
« Risposta #6 il: 25 Luglio 2011, 21:13:04 CEST »
0
probabilmente devi cambiare l'API level del tuo progetto eclipse. Poi usi il codice che ha postato teskio. ( handleCommand è un metodo che devi scrivere tu)
« Ultima modifica: 25 Luglio 2011, 21:14:51 CEST da Qlimax »

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Service : è l'onStartCommand ???
« Risposta #7 il: 25 Luglio 2011, 21:43:29 CEST »
0
probabilmente devi cambiare l'API level del tuo progetto eclipse. Poi usi il codice che ha postato teskio. ( handleCommand è un metodo che devi scrivere tu)

Scate ragazzi io non ci stò capendo niente....nel manifest io ho <uses-sdk android:targetSdkVersion="10" android:minSdkVersion="4"/> se il valore minSdkVersion lo metto a 5 poi non ho più la compatibilità dell'applicazione con le versioni android 1.6

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Service : è l'onStartCommand ???
« Risposta #8 il: 25 Luglio 2011, 21:53:45 CEST »
0
Ma no tutt'altro...il minSdkVersion puoi lasciarlo a 4 per retrocompatibilità, mentre userai un api level maggiore per la tua applicazione in modo da usare il codice postato prima, nonchè citato come esempio dalla doc di Android. Così sarà retrocompatibile per piattaforme inferiori alla 2.0
chi ha detto di metterlo a 5?

In ogni caso, togliendo la compatibilità 1.6 non perderesti molto...
Platform Versions | Android Developers
« Ultima modifica: 25 Luglio 2011, 21:56:15 CEST da Qlimax »

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Service : è l'onStartCommand ???
« Risposta #9 il: 25 Luglio 2011, 22:11:49 CEST »
0
SI lo sò ma non mi va però vorrei lasciarla a 4 :-) però se la lascio a 4 non si può fare quello che dice teskio perchè onStartCommand non esiste proprio nelle api 4

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Service : è l'onStartCommand ???
« Risposta #10 il: 25 Luglio 2011, 22:34:04 CEST »
0
Per essere retrocompatibile devi usare le api "piu nuove" impostate a livello di progetto di eclipse e come targetSdkVersion (per esempio 5)
Mentre devi mettere un livello inferiore (retro) come minSdkVersion, per farlo girare su dispositivi con api vecchie (per esemio 4)

Quindi avrai targetSdkVersion=5 minSdkVersion=4 e nel progetto eclipse usi le api 5 per programmare.
Cosi sei compatibile dalla 4 in avanti, ma puoi usare anche le api della 5

Dico 5 per fare un esempio ma puoi usare anche le api 13 se vuoi come targetSdkVersion e in eclipse.

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Service : è l'onStartCommand ???
« Risposta #11 il: 25 Luglio 2011, 22:41:17 CEST »
0
Ora ho capito, praticamente quando si crea un progetto dove leggo Build Target devo mettere il TargetSdkVersion massimo tipo per la 2.3.3 metto 10 e nella casellina Min SDK Version metto 4 per dire che anche la 1.6 lo può usare. Ho capito giusto ?

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Service : è l'onStartCommand ???
« Risposta #12 il: 25 Luglio 2011, 22:43:58 CEST »
0
Sì  :-) minsdk 4 per la 1.5(non1. 6) ma penso che intendevi la1.5
« Ultima modifica: 25 Luglio 2011, 22:47:28 CEST da Qlimax »

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Service : è l'onStartCommand ???
« Risposta #13 il: 25 Luglio 2011, 22:51:41 CEST »
0
Si si ok ok grazie ;)

Offline funcool

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid CM 7.1
  • Play Store ID:
    elcasa
  • Sistema operativo:
    Windows 8
Re:Service : è l'onStartCommand ???
« Risposta #14 il: 04 Agosto 2011, 19:53:04 CEST »
0
Ora ho capito, praticamente quando si crea un progetto dove leggo Build Target devo mettere il TargetSdkVersion massimo tipo per la 2.3.3 metto 10 e nella casellina Min SDK Version metto 4 per dire che anche la 1.6 lo può usare. Ho capito giusto ?
ma quindi io programmo con le api più recenti e si arrangia un entità superiore a fornirmi le funzioni non presenti nelle api vecchie, ad esempio se viene eseguito con l' 1.6 ?