La planification de l'alarme toutes les 2 minutes android
Dans ma classe d'activité
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AlarmManager alarmManager=(AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,System.currentTimeMillis(),2000, pendingIntent);
}
Et Mon onrecieve fonction dans alarmreciever classe
@Override
public void onReceive(Context context, Intent intent)
{
//get and send location information
System.out.println("fired");
}
Je suis en utilisant le nexus 4, kitkat version. Je ne vois pas de onreceive fonction déclenche toutes les 2 minutes.nthg qui se passe...
toute aide? merci
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.alarmexample" android:versionCode="1" android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="20" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name="com.example.AlarmExample"
android:exported="false" >
</receiver>
</application>
</manifest>
Je viens de mettre mon manifeste ainsi. ................................................
avez-vous mis le récepteur d'alarme nom de la classe dans votre manifeste ?
oui. ...........
oui. ...........
OriginalL'auteur user3278732 | 2014-10-26
Vous devez vous connecter pour publier un commentaire.
Dans votre setRepeating fonction, vous devez utiliser SystemClock.elapsedRealTime() pour ELAPSED_REALTIME_WAKEUP.
Aussi, vous avez besoin de changer de 2000 à 2*60*1000 pour spécifier votre intervalle de temps.
Espère que cette aide.
Référence: ELAPSED_REALTIME_WAKEUP
EDIT:
Dans votre fichier de manifeste, il y a une erreur dans votre nom de récepteur.
Le changement ".AlarmReciever" pour ".AlarmReceiver".
J'ai vérifié votre projet et trouvé une faute de frappe dans votre fichier manifeste. Je viens de mettre à jour ma réponse.
merci beaucoup, qui a résolu la situation. maintenant, je travaille sur une autre question. dans le pain d'épices le gestionnaire d'alarme se déclenche rapidement, en kitkat son tir après 32 secondes.. quand je fais cela 10*60*1000
Je pense que c'est dû à SystemClock.elapsedRealtime(). Elle renvoie le nombre de millisecondes depuis le démarrage. Ainsi, dans votre cas, je suppose que le pain d'épice le temps de démarrage est plus rapide que kitkat.
encore une question, si je accéder à l'application 200 fois... l'alarme manager est remplacée par une nouvelle création? je n'aurais pas 100 alarme gestionnaires de droit?
OriginalL'auteur SLee
dans votre code, vous réglez l'alarme de cette façon
l'intervalle de temps est mauvais pour exécuter toutes les deux minutes, vous devriez écrire:
MODIFIER
pour l'attente de votre intention de définir le drapeau
PendingIntent.FLAG_UPDATE_CURRENT
et voir si cela change quoi que ce soit.J'ai édité la réponse
- Je mettre le code ici wetransfer.com/downloads/... sa ne fonctionne pas. application simple, il suffit d'imprimer l'alarme
OriginalL'auteur EC84B4