J'utilise le code ci-dessous pour démarrer un service. ce service doit démarrer la tâche Async qui vérifie mysql et fournit des notifications. le service ne démarre pas et je ne peux pas trouver pourquoi? Je ne reçois aucun journal du service. (lorsque j'appelle directement la tâche Async de l'activité principale sans service, cela fonctionne correctement).Service avec tâche asynchrone ne démarre pas
Code Activité principale:
Intent startIntent = new Intent(MainActivity.this, ForegroundService.class);
MainActivity.this.startService(startIntent);
Code de classe de service:
public class ForegroundService extends Service {
private static final String LOG_TAG = "ForegroundService";
@Override
public void onCreate() {
Log.i(LOG_TAG, "On Create");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(LOG_TAG, "On Start");
new Thread(new Runnable() {
@Override
public void run() {
String newoperator = "Go";
TimeSync ReportCheck= new TimeSync(getApplicationContext());
ReportCheck.execute(newoperator);
}
}).start();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i(LOG_TAG, "In onDestroy");
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
Je trouve aussi quelques solutions en ajoutant la commande suivante dans l'activité principale, mais la commande n'est pas applicable dans mon studio android.
startIntent.setAction(Constants.ACTION.STARTFOREGROUND_ACTION);
Vérifiez les points suivants: 1. Le service est déclaré dans le manifeste 2. le journal dans le onStartCommand est imprimé 3. Connectez le onCreate est imprimé –
parfait, j'ai eu des problèmes, le premier que je n'étais pas déclarer le service dans le fichier mainifest, le second que je faisais la classe de service entravée dans MainActivityClass. Je l'ai déplacé à une classe distincte et cela fonctionne :) merci –
super :) heureux que cela a aidé –