是的,你可以有你的小部件更新爲C2DM(現GCM)進來,
一旦您的應用程序接收C2DM(或GCM)消息,你將不得不從您的服務器獲取您的更新,或如果您將消息作爲有效內容發送,並從本地存儲,則從消息中檢索它。然後,您將不得不爲您的小部件啓動更新服務,您可能已經在使用該服務。如果不知道更多關於您的應用的信息,就很難確切說明如何實現這一點。一般來說,小部件將有一個更新的服務。下面是一個通用的更新服務:
public static class UpdateService extends Service {
@Override
public void onStart(Intent intent, int startId) {
RemoteViews updateViews = buildUpdate(this);
// Push update for this widget to the home screen
ComponentName thisWidget = new ComponentName(this, Widget.class);
AppWidgetManager manager = AppWidgetManager.getInstance(this);
manager.updateAppWidget(thisWidget, updateViews);
}
public RemoteViews buildUpdate(Context context) {
// process the updated view here. Probably would pull data from DB and update views //accordingly
return updateViews;
}
}
我終於開始在這個項目上再次工作。感謝你的回答 – tdramble