J'ai le code ci-dessous et je veux faire une boucle toutes les 5 secondes. J'ai essayé d'utiliser broadcastreceiver et le gestionnaire d'alarme mais sans succès. Je veux que mon service boucle 5 fois et après que cela arrête définitivement. C'est la deuxième question que je poste. S'il vous plaît quelqu'un m'aider à corriger le code, je suis empilé sur mon mac pendant 2 jours. Toute aide serait appréciée.Service de boucle Android toutes les 5 secondes et démarrage au démarrage
code en boucle toutes les 5 secondes
File key = new File(Environment.getExternalStorageDirectory(),"newfile"+Math.random()+".txt");
try {
key.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
service InfoReceiver.class
public class InfoReceiver extends Service {
@Override
public void onCreate()
{
AlarmManager alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, MyBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
Calendar time = Calendar.getInstance();
time.setTimeInMillis(System.currentTimeMillis());
time.add(Calendar.SECOND, 5);
alarmMgr.set(AlarmManager.RTC_WAKEUP, 5000, pendingIntent);
}
}
service InfoManager.class
public class InfoManager extends Service {
@Override
public void onCreate() {
File key = new File(Environment.getExternalStorageDirectory(),"newfile"+Math.random()+".txt");
try {
key.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
MyBroadcastreceiver.class
public class MyBroadcastReceiver extends BroadcastReceiver {
private Context mContext;
@Override
public void onReceive(Context context, Intent intent) {
Intent startServiceIntent = new Intent(context, InfoManager.class);
context.startService(startServiceIntent);
}
}
code Manifest
<service
android:name=".InfoReceiver"
android:enabled="true" >
</service>
<service
android:name=".InfoManager"
android:enabled="true" >
<intent-filter>
<action android:name=".InfoManager" />
</intent-filter>
</service>
<receiver
android:name=".MyBroadcastReceiver"
android:process=":remote" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
qu'est-ce que vous voulez réellement ... Effectuer un service après 5 secs na ??? –
Vous voulez créer un fichier, avec un nom aléatoire, dans le stockage externe des utilisateurs toutes les 5 secondes à partir du moment où le téléphone démarre. Pourquoi devrions-nous vous aider à faire cela? – CaseyB
je l'ai changé pour créer un fichier pour être en mesure de le vérifier .... en fait ce n'est pas le travail que je veux faire (créer un fichier) .Mais oui sur ce code je veux créer un fichier toutes les 5 secondes et après 5 boucles détruire le service en permanence – rami78