2015-10-07 1 views
-2

Je voudrais créer une application (test) qui exécute une commande toutes les heures en arrière-plan (par exemple, éditer un fichier ou afficher un message de débogage).Android | Exécuter la commande par programme

En supposant que l'application commence par le démarrage du système

  • Comment puis-je faire cela?
  • L'application doit-elle toujours fonctionner?
+0

* L'application doit toujours fonctionner * bonne chance avec cela. Un utilisateur peut mettre fin à votre application quand il le souhaite –

+0

Copie possible de [Comment exécuter une tâche toutes les heures?] (Http://stackoverflow.com/questions/10630365/how-to-execute-one-task-every-hour –

+0

Je me suis mal exprimé, je veux dire que l'application ne devrait pas rester en arrière-plan, c'était une question. Désolé pour le doublon, je n'ai pas trouvé cet argument. –

Répondre

0

Veuillez utiliser alarmmanager en utilisant la fonctionnalité de service pour y parvenir.

pour par exemple:

private void setAlarmManager() { 
    Intent intent = new Intent(this, AlarmReceiver.class); 
    PendingIntent sender = PendingIntent.getBroadcast(this, 2, intent, 0); 
    AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); 
    long l = new Date().getTime(); 
    if (l < new Date().getTime()) { 
     l += 86400000; // start at next 24 hour 
    } 
    am.setRepeating(AlarmManager.RTC_WAKEUP, l, 86400000, sender); // 86400000 
} 

Source

+0

Au lieu de copier coller une réponse, il suffit de marquer pour la duplication –

+0

Intention n'est pas copier coller. répondez au point exact pour éviter de perdre du temps. – AndroidEnthusiastic

+0

Qu'est-ce que "expéditeur"? Je voudrais vérifier certaines variables et exécuter une fonction/script .. –

-1

rendre votre application démarrer lorsque le démarrage des périphériques Vous devez battant créer une classe qui étend le récepteur. Dans le manifeste Déclarez votre classe comme ceci

<receiver android:name=".ClassName"> 
<intent-filter > 
    <action android:name="android.intent.action.BOOT_COMPLETED"/> 
</intent-filter> 
</receiver> 

Et ne pas oublier d'utiliser l'autorisation

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

ÉCRIRE à votre classe de récepteur, le mode OnReceive Remplacer

Intent intent= new Intent(context, MainActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(myIntent); 

Si vous voulez exécuter quelque chose dans votre contexte, utilisez Services

+0

OP ne veut pas savoir comment démarrer son application au démarrage -> * En supposant que l'application commence par le démarrage du système * –

+0

Ensuite, bien vouloir voter la question bro Pas ma réponse s'il vous plait .... Vous savez tout ce qui ne veut pas dire que nos réponses sont fausses et éligibles à la downvotation ... –

+0

Si votre réponse ne résout pas le problème dans la question, c'est "inutile" qui le rend éligible pour downvoting. Bien sûr, vous pouvez mal interpréter la question et donner une mauvaise réponse, je le fais moi-même quelques fois. Dans ce cas, j'admets mon erreur et efface ma réponse. Vous êtes libre de faire ce que vous voulez bien sûr –