exécuter les services, même si l'application est fermée (tué)
Je veux que ce service s'exécuter même si l'application est fermée (kiiled) ou même si l'utilisateur ne commencez pas à l'application.
je veux que le service de démarrer après l'installation de l'application et à partir de ce point, le service doit toujours exécuter.
public class notifications extends Service {
@Override
public IBinder onBind(Intent intent) {
//TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
}
@Override
public void onStart(Intent intent, int startId) {
final Handler handler = new Handler();
final Runnable runb = new Runnable()
{
public void run()
{
Toast.makeText(getApplicationContext(), " Service Started", Toast.LENGTH_LONG).show();
handler.postDelayed(this, 10000);
}
};
handler.postDelayed(runb, 0);
}
@Override
public void onDestroy() {
}
}*/
public class notifications extends IntentService
{
private Timer mBackGroundTimer;
public notifications()
{
super("myservice");
this.mBackGroundTimer=new Timer();
}
@Override
protected void onHandleIntent(Intent intent)
{
//TODO Auto-generated method stub
mBackGroundTimer.schedule(new TimerTask()
{
public void run()
{
try
{
Notification("This is message from Dipak Keshariya (Android Application Developer)", "This is Android Notification Message");
}
catch (Exception e)
{
//TODO Auto-generated catch block
e.printStackTrace();
}
}
},1000, 2000);
} //END onHandleIntent()
private void mStopTimer()
{
//Call this whenever you need to stop the service
mBackGroundTimer.cancel();
}
private void Notification(String notificationTitle, String notificationMessage) {
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
android.app.Notification notification = new android.app.Notification(R.drawable.ic_launcher, "A New Message from Dipak Keshariya (Android Developer)!",
System.currentTimeMillis());
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(getApplicationContext(), notificationTitle, notificationMessage, pendingIntent);
notificationManager.notify(10001, notification);
}
}
comment je peux faire?
lire ce developer.android.com/reference/android/app/IntentService.html ce vogella.com/articles/AndroidServices/article.html
OriginalL'auteur tornal vergaro | 2013-09-16
Vous devez vous connecter pour publier un commentaire.
En regardant ton code, il semble que vous voulez que votre service périodiquement donner des notifications.
Autant que de l'avoir exécuté en continu va, gardez à l'esprit que par sa conception, le système Android peut mettre fin à votre service à tout moment du processus. Vous pouvez influencer ce un peu, mais vous ne pouvez pas empêcher le système de tuer votre service.
Donc, pour votre périodique des actions, il serait préférable d'utiliser AlarmManager avec une récurrents d'alarme. Votre service serait alors essentiellement le one-shot, c'est à dire effectuer l'action une fois, puis sur quitter.
Pour un peu de code, regarde ici par exemple:
Android: Alarm Manager
Il enregistrera une alarme, qui sera périodiquement votre service. Votre service n'auront pas besoin d'être en cours d'exécution tout le temps (en fait, votre service doit juste sortir après que vous avez effectué l'action désirée une fois), que vous pouvez régler l'alarme pour déclencher un service unique d'exécuter à chaque fois que c'est nécessaire. Pas besoin pour votre application à exécuter.
Je veux envoyer une notification lorsque X append, mais le X est sur un site web (json). j'ai donc besoin pour exécuter le service toujours et puis si X append je veux envoyer une notification. et il faut toujours exécuter. même si j'ai pas de démarrer l'application.
Eh bien, avec l'alarme gestionnaire approche, vos services n'auront pas besoin d'être opérationnels à tout moment. La seule chose que vos besoins de service de le faire lors de l'exécution est de vérifier votre état X fois, et si vrai, envoyer votre notification. L'alarme gestionnaire prendra soin d'appeler votre service tous les x secondes, ce qui est essentiellement le même que votre service soit toujours en cours d'exécution. L'avantage est, vous n'avez pas besoin de s'inquiéter sur le système android de tuer vos processus de service, comme il sera redémarré à chaque fois que la tâche qui doit être fait. Même si votre application n'est pas en cours d'exécution, comme l'alarme manager ne dépend de votre application.
OriginalL'auteur bgse
Vous avez besoin pour mettre en œuvre les OnStartCommand méthode de la classe de Service, le Service de retour.START_STICKY. Que va faire l'affaire. Si vous tuez l'application, le service continuera à s'exécuter en arrière-plan. Toutefois, si vous redémarrez votre téléphone, je pense que vous avez besoin de mettre en place quelque chose d'autre dans votre application, ainsi, un service de démarrage ou quelque chose comme ça.
Je ne pense pas que vous pouvez démarrer un service sans démarrer l'application. Mais avec START_STICKY, après que vous avez commencé votre service, il ne s'arrêtera pas.
Mais mon exigence est que je dois démarrer le service après démarrage de l'application.ex après la connexion.
OriginalL'auteur Hampel Előd
Que vous exigence est d'exécuter le service en arrière-plan. vous êtes sur la bonne voie pour utiliser le service, car c'est prévu pour l'exécution en arrière-plan.
de l'activité, vous pouvez démarrer le service en
ou si votre demande n'est pas d'avoir une activité, alors vous pouvez faire le service, comme par défaut et le principal lanceur de l'application en mettant
Tuer l'application et redémarrez l'appareil est deux chose différente. vous pouvez mettre un récepteur de radiodiffusion lorsque le téléphone est redémarré, vous pouvez commencer à votre service. et faire à votre service en tant que collante que le système ne sera pas le tuer.
OriginalL'auteur Dinesh Prajapati
Je pense que la réponse à cette question est: est-ce https://developer.android.com/training/sync-adapters/creating-sync-adapter.html
De synchronisation de Cartes introduit dans Google I/O 2013.
OriginalL'auteur Kailas