需要更新时钟小部件的TextView每秒或每分钟变化。
我正在从AppWidgetProvider的onReceive调用服务:
private String action = "clock.beautiful.best.com.mmclock.TheService";
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
//UseThis
Log.e("h","R");
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main_widget);
// Create a fresh intent
Intent serviceIntent = new Intent(context, TheService.class);
serviceIntent.setAction(action);
context.startService(serviceIntent);
ComponentName componentName = new ComponentName(context, TheService.class);
AppWidgetManager.getInstance(context).updateAppWidget(componentName, remoteViews);
}
我应该做什么来检查更新的时间,如果有,然后更新‘时间’文本视图…
public class TheService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Log.e("Service","created");
}
@Override
public void onDestroy() {
Log.e("Service","Destroy");
}
public void changeYexy (){
RemoteViews remoteViews = new RemoteViews(TheService.this.getPackageName(), R.layout.main_widget);
remoteViews.setTextViewText(R.id.dateTextView,"T");
}
@Override
public void onStart(Intent intent, int startid) {
Log.e("Service","start");
}
}
任何一种都是非常非常非常感谢的
您可以使用AlarmManager定期更新小部件,而不是使用service
public class Alarm
{
public static void setAlarm(Context context, int interval)
{
AlarmManager am =( AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, yourWidget.class);
intent.setAction("WIDGET_UPDATE");
int[] ids = AppWidgetManager.getInstance(context)
.getAppWidgetIds(new ComponentName(context, yourWidget.class));
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
am.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + interval * 1000, pi);
}
public void cancelAlarm(Context context)
{
Intent intent = new Intent(context, Alarm.class);
PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(sender);
}
}
这样,alram在间隔秒后以“widget_update”作为动作向小部件发送广播。
在小工具的onEnable方法中启用警报:
@Override
public void onEnabled(Context context) {
super.onEnabled(context);
Alarm.setAlarm(context, 1);
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if ("WIDGET_UPDATE".equals(intent.getAction())) {
int[] appWidgetIds = AppWidgetManager.getInstance(context)
.getAppWidgetIds(new ComponentName(context, yourWidget.class));
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
//set alarm for the next time
Alarm.setAlarm(context, 1);
//update your widget here
onUpdate(context, appWidgetManager, appWidgetIds);
}
}
当我试图从我的web服务器获取SOAP响应时,我的小部件更新服务抛出了一个:“android.os.NetworkOnMainThreadException”。 我确信SOAP代码没有错误,因为我只通过IntentService而不是服务在应用程序中使用相同的代码。 我根据最后一个示例设计了我的小部件:http://www.vogella.com/tutorials/AndroidWidgets/
在RoomDatabase中创建数据库时,一切工作都很好,并且数据已成功加载,但是,我需要更新服务中生成的数据,问题是它需要下一行中的活动上下文: Dao接口: 存储库: 服务: 我希望服务在LiveData列表中执行、保存和刷新新结果,但我不能声明LiveData列表。
情况: 在我的网站上。com/game,我在 在我的服务器上,的最大值为。 问题: 。 问题是,每当用户访问,它显示空页面,不再执行任何操作。我无法让客户端获取新的。 如何让客户端获取新的?
如果用户第一次安装我的应用程序,我如何构建我的Inno安装脚本以自动注册dll,但如果有一个以前的版本,则取消注册,然后注册新版本(假设界面不同)? 我目前在我的文件部分使用regserver和忽略reversion标志,如下所示: 在我的谷歌搜索中,我找到了Un注册表服务器,但我不知道如何将其添加到我的脚本中。我很乐意开始修补以了解它是如何工作的,但我不想做任何会弄乱我的注册表的事情。 这里有一
问题内容: 下面显示的是我班的简化版本。我在onReceive方法上遇到了麻烦,该方法没有更新小部件TextView。它在logcat中显示正确的信息,该信息在setTextViewText之前的行上输出。我不确定出什么问题了,并且一直在拔头发(而且我已经秃顶了)。 } 问题答案: 找到了答案。调用后,您需要通过调用来更新窗口小部件。我添加的代码如下所示。
问题内容: 我们正在使用Django / TastyPie作为后端REST服务提供程序来构建Web应用程序,并使用大量基于$ resource的服务对服务器上的CRUD对象进行构建,从而构建基于AngularJS的前端。到目前为止一切正常! 但是, 当我们只想更新一个对象上的一个或两个更改的字段时,我们想减少要传送的数据量。 DeliciousPie使用HTTP PATCH方法支持此功能。我们在对