Dans l'attente de l'intention de bénéficier de ce service
Je vais avoir un problème pour faire mon pendingIntent
à feu. J'ai fait un peu de dépannage à l'aide de la logcat etc. et au final, je suis presque certain que mon problème est en fait dans mon pendingIntent
méthode. Le temps que j'ai mis sont corrects, et la méthode est appelé, mais rien ne se passe à l'horaire.
Voici la méthode que j'utilise pour créer le pendingIntent
public void scheduleAlarm(){
Log.d("Alarm scheduler","Alarm is being scheduled");
Intent changeVol = new Intent();
changeVol.setClass(this, VolumeService.class);
PendingIntent sender = PendingIntent.getService(this, 0, changeVol, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, time, sender);
//Toast.makeText(this, "Volume Adjusted!", Toast.LENGTH_LONG).show();
}
Ici est la classe de service:
public class VolumeService extends Service{
@Override
public void onCreate() {
super.onCreate();
Log.d("Service", "Service has been called.");
Toast.makeText(getApplicationContext(), "Service Called!", Toast.LENGTH_LONG).show();
}
@Override
public IBinder onBind(Intent arg0) {
//TODO Auto-generated method stub
return null;
}
}
Le journal dans la scheduleAlarm()
classe est de travailler comme je l'ai prévu, mais rien ne se passe, donc je suppose que c'est mon pendingIntent
.
Merci à l'avance!
Pourriez-vous nous communiquer la façon dont vous obtenez la valeur de temps? Utilisez-vous le Système. currentTimeMillis() + quelques temps de retard? Avez-vous définir le service en AndroidManifest.xml?
Le temps est fournie par l'utilisateur à l'aide d'un
Eh bien, il semble bien pour moi, mais je vais essayer de tester plus avec l'annulation de l'alarme et de l'annuler et de créer de nouveau dans l'attente de l'intention. Cherche aussi à utiliser le Système uniquement.currentTimeMillis() à des fins de test. Il doit travailler et peut vous montrer où était le problème.
Le temps est fournie par l'utilisateur à l'aide d'un
timePicker dialog
et j'ai triple vérifiée en utilisant le logCat pour être sûr que le moment est choisi correctement; et il est. Par exemple, je l'ai vérifié plus tôt aujourd'hui, et je saisis 3:45 pm, (MST) et quand j'ai vérifié le long
valeur enregistrée correctement est sorti à 3:45 pm (MST), le 30 juillet 2013. Quant à la deuxième partie de votre question, j'ai ajouté à l'manifeste en utilisant l'extrait de code suivant <service android:enabled="true" android:name=".services.VolumeService" />
.Eh bien, il semble bien pour moi, mais je vais essayer de tester plus avec l'annulation de l'alarme et de l'annuler et de créer de nouveau dans l'attente de l'intention. Cherche aussi à utiliser le Système uniquement.currentTimeMillis() à des fins de test. Il doit travailler et peut vous montrer où était le problème.
OriginalL'auteur The Dude | 2013-07-30
Vous devez vous connecter pour publier un commentaire.
Compris! Le problème était dans la classe de Service, j'ai changé un peu d'autres choses autour de trop.
Cependant, je crois que le principal problème était que dans ma classe de service dans la
onCreate
méthode que j'essayais de faire fonctionner mon code. Mais ce qui devait être fait dans leonStartCommand
méthodeet quelques modifications ont été apportées dans la classe de commencer le service, comme ici:
oui pour moi il fonctionne très bien, même si il est tué, comme vous l'avez dit, c'est un peu le point. Désolé je ne peux pas aider plus.
OriginalL'auteur The Dude