Android: Démarrez le service avec Context.startService vs PendingIntent.getService

Context.startService

Intent intent = new Intent(context, MyService.class); context.startService(intent); 

PendingIntent.getService

  • Google Play - Fully Shadowed apk
  • Existe-t-il un moyen de personnaliser le seuil pour le défilement de ViewPager?
  • Disposition Android: L'UI des composants réutilisables est-elle possible?
  • Peut-on désactiver "chatty" dans Logcat?
  • EditText - change de texte en tapant
  • Comment zoomer toute l'activité sur multi-touches?
  •  Intent intent = new Intent(context, MyService.class); PendingIntent pi = PendingIntent.getService(context, 0, intent, 0); pi.send(); 

    Des questions

    1. Quand commenceriez-vous un service avec Context.startService vs PendingIntent?
    2. Pourquoi utiliseriez-vous l'un sur l'autre?

  • Comment obtenir l'échelle de webview dans Android 4
  • Empêche la rotation de l'écran sur Android
  • Comment traiter plusieurs fragments pour une seule activité
  • Retrofit2.0 obtient MalformedJsonException alors que le json semble correct?
  • Android - Mettre en surbrillance un Word dans un TextView?
  • Barre de progression circulaire c # xamarin - Android
  • 2 Solutions collect form web for “Android: Démarrez le service avec Context.startService vs PendingIntent.getService”

    Il n'y a vraiment aucune différence.

    Plus précisément, la méthode Contexto est utilisée pour démarrer directement l'étape où, en tant que PendingIntent, il est généralement utilisé avec une notification pour déclencher cette intention lorsqu'il est taper, ce qui est retardé jusqu'à ce que l'utilisateur l'utilise (généralement). Toutefois; Vous ne transmetriez généralement pas PendingIntent directement parce que ce n'est pas pour quoi il s'agit.

    Un PendingIntent est une intention qui est en attente, en attente, ce qui signifie qu'il ne doit PAS se produire maintenant, mais dans un proche avenir. Alors qu'avec un Intention, il est envoyé au moment même.

    Si un PendingIntent n'est pas en attente lorsqu'il est utilisé, alors ce n'est plus un PendingIntent et c'est en fait un Intent. Défaite entièrement du but .

    PendinIntents est très utilisé pour les widgets. Étant donné que la mise en page d'un widget en cours d'exécution n'appartient pas à votre code, mais il est sous contrôle du système, vous ne pouvez pas affecter directement les auditeurs aux éléments de l'interface. Au lieu de cela, vous attribuez un PendingIntent à ces éléments (comme les boutons), alors lorsque l'utilisateur les touche, PendingIntent est "exécuté", quelque chose comme:

     // get the widget layout RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.id.widget_layout); // prepare to listen the clicks on the refresh button Intent active = new Intent(context, WidgetCode.UpdateService.class); PendingIntent refreshPendingIntent = PendingIntent.getService(context, 0, active, 0); remoteViews.setOnClickPendingIntent(R.id.buttonWidgetRefresh, refreshPendingIntent); // send the changes to the widget AppWidgetManager.getInstance(context).updateAppWidget(appwidgetid, remoteViews); 

    Dans ce cas, un bouton dans le widget démarre un service. Habituellement, vous mettez des informations supplémentaires dans l'intention, avec putExtras (), de sorte que le service recevra toute l'information nécessaire pour faire son travail.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.