J'essaie de construire mon premier widget android - c'est une icône simple, sur laquelle lorsque je clique sur quelque chose hapens - sur "quelque chose" j'utilise le service. Tout va bien, mais j'ai un petit problème, que je ne comprends pas. Cela fonctionne très bien:Les services Android dans un fichier séparé ne fonctionnent pas
CLASS MYWIDGET.JAVA
------------------------------------------------
public class MyWidget extends AppWidgetProvider {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction() == null) context.startService(new Intent(context, UpdateService.class));
else super.onReceive(context, intent);
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
context.startService(new Intent(context, UpdateService.class));
}
public static class UpdateService extends IntentService {
public UpdateService() {
super("MyWidget$UpdateService");
}
@Override
protected void onHandleIntent(Intent arg0) {
ComponentName me = new ComponentName(this, MyWidget.class);
AppWidgetManager manager = AppWidgetManager.getInstance(this);
manager.updateAppWidget(me, buildUpdate(this));
}
private RemoteViews buildUpdate (Context context) {
// i'm doing something here
}
}
}
mais quand j'extrais UpdateService dans un fichier séparé, il ne fonctionne pas:
CLASS MYWIDGET.JAVA
------------------------------------------------
public class MyWidget extends AppWidgetProvider {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction() == null) context.startService(new Intent(context, UpdateService.class));
else super.onReceive(context, intent);
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
context.startService(new Intent(context, UpdateService.class));
}
}
CLASS UPDATESERVICE.JAVA
-------------------------------
public class UpdateService extends IntentService {
public UpdateService() {
super("UpdateService");
}
@Override
protected void onHandleIntent(Intent arg0) {
ComponentName me = new ComponentName(this, MyWidget.class);
AppWidgetManager manager = AppWidgetManager.getInstance(this);
manager.updateAppWidget(me, buildUpdate(this));
}
private RemoteViews buildUpdate (Context context) {
// i'm doing something here
}
}
}
Cette version ne marche pas travail - quand je clique sur l'icône du widget, aucune méthode dans le service de mise à jour n'est jamais appelée. Où devrait être le problème?
ouais, je remarqué en même temps u écrit;) Qu'est-ce que une erreur stupide ... Je devrais avoir plus de pauses pendant le travail;) THX, problème résolu – qkx