L'événement de clic de bouton de l'AppWidget d'Android n'est pas reçu après l'arrêt de la force de lancement de la maison

J'ai un widget d'application et l'événement de clic peut être reçu dans onUpdate() dans mon fournisseur.
Cependant, lorsque j'essaie de forcer à fermer le lanceur de maison, l'événement de clic est perdu.
J'ai même mis des points d'arrêt dans tous onEnabled() , onReceived() … etc: la connexion semble être perdue.

En conséquence, comment puis-je "relier" l'événement bouton?

  • Problème multimédia du réseau Android JellyBean
  • Différences entre TextWatcher's OnTextChanged, BeforeTextChanged et AfterTextChanged
  • Comment intégrer une base de données SQLite dans une application?
  • Android Studio - Fusion de manifeste de Gradle échoué
  • Comment gérer la notification lorsque l'application en arrière plan dans Firebase
  • Impossible d'importer org.apache.http.HttpResponse dans Android Studio
  • WidgetProvider étend AppWidgetProvider :

     @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { Log.d(TAG, "onUpdate()"); Log.d(TAG, "isLoading: " + CONSTANT.isLoading); // update each of the widgets with the remote adapter from updateService // Get all ids ComponentName thisWidget = new ComponentName(context, ScoreWidgetProvider.class); int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget); // Build the intent to call the service Intent intent = new Intent(context.getApplicationContext(), UpdateWidgetService.class); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, allWidgetIds); // Update the widgets via the service context.startService(intent); // super.onUpdate(context, appWidgetManager, appWidgetIds); } 

    UpdateWidgetService étend le Service :

     @Override public void onStart(Intent intent, int startId) { Log.i(TAG, "Called"); AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(getApplicationContext()); int[] appWidgetIds = intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS); for (int i = 0; i < appWidgetIds.length; ++i) { // Here we setup the intent which points to the StackViewService which will // provide the views for this collection. Intent remoteViewsIntent = new Intent(this.getApplicationContext(), ScoreWidgetRemoteViewsService.class); remoteViewsIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetIds[i]); // When intents are compared, the extras are ignored, so we need to embed the extras // into the data so that the extras will not be ignored. remoteViewsIntent.setData(Uri.parse(remoteViewsIntent.toUri(Intent.URI_INTENT_SCHEME))); RemoteViews rv = new RemoteViews(this.getApplicationContext().getPackageName(), R.layout.widget_layout); rv.setRemoteAdapter(appWidgetIds[i], R.id.score_list, remoteViewsIntent); // Set the empty view to be displayed if the collection is empty. It must be a sibling // view of the collection view. rv.setEmptyView(R.id.score_list, R.id.empty_view); // Bind the click intent for the refresh button on the widget final Intent refreshIntent = new Intent(this.getApplicationContext(), ScoreWidgetProvider.class); refreshIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); refreshIntent.setAction(ScoreWidgetProvider.REFRESH_ACTION); final PendingIntent refreshPendingIntent = PendingIntent .getBroadcast(this.getApplicationContext(), 0, refreshIntent, PendingIntent.FLAG_UPDATE_CURRENT); rv.setOnClickPendingIntent(R.id.btn_refresh, refreshPendingIntent); appWidgetManager.updateAppWidget(appWidgetIds[i], rv); } // stopSelf(); super.onStart(intent, startId); } 

  • Android: l'application de démarrage à partir de "applications récentes" démarre avec le dernier ensemble d'extras utilisé dans une intention
  • Comment changer la position des éléments de menu sur la barre d'action
  • Comment libérer un composant dans Android / iOS
  • Comment faire un fond de dégradé dans Android
  • SMS de classe 0 (flash SMS) sur Android
  • Boutons de conception de matériel Android - Pre lollipop
  • One Solution collect form web for “L'événement de clic de bouton de l'AppWidget d'Android n'est pas reçu après l'arrêt de la force de lancement de la maison”

    Assurez-vous que vous utilisez le contexte correct dans votre fonction onStart . Consultez getApplicationContext dans la partie onStart de votre code, le passage dans le mauvais type de contexte peut provoquer des erreurs. Voici un lien pour plus d'informations: Contexte .

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