我正在尝试构建我的第一个android小部件 - 它是一个简单的图标,当我点击某事时,哼了一声 - “我正在使用服务”。一切都很好,但我有一个小问题,我不明白。这工作得很好:在单独的文件中的Android服务不工作
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
}
}
}
但是当我提取UpdateService到单独的文件中这是行不通的:
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
}
}
}
这个版本没有工作 - 当我点击小工具图标时,更新服务中的任何方法都不会被调用。问题应该在哪里?
是啊,我在同一时刻了你编写注意到了这一点;)什么一个愚蠢的错误......我应该在工作中休息一下;)thx,问题解决了 – qkx 2012-04-27 11:11:27