有人能告诉我如何在计划的时间段内更新视图吗。例如,每秒钟。
MyService.wm.updateViewLayout(mView, mLayoutParams);
我遇到的问题是,当我使用计时器时,它在不同的线程上运行,它不允许我更新视图并给出以下错误。
04-08 01:19:35.910:带dalvikvm(11040):线程ID=13:线程退出,但出现未捕获的异常(组=0x40a3e1f8)04-08 01:19:35.910:E/AndroidRuntime(11040):致命异常:线程1376 04-08 01:19:35.910:E/AndroidRuntime(11040):android。看法ViewRootImpl$CalledFromErrorThreadException:只有创建视图层次结构的原始线程才能接触其视图。04-08 01:19:35.910:E/AndroidRuntime(11040):在android上。看法ViewRootImpl。checkThread(ViewRootImpl.java:4039)04-08 01:19:35.910:E/AndroidRuntime(11040):在android上。看法ViewRootImpl。requestLayout(ViewRootImpl.java:709)04-08 01:19:35.910:E/AndroidRuntime(11040):在android上。看法看法requestLayout(View.java:12680)04-08 01:19:35.910:E/AndroidRuntime(11040):在android上。看法看法setLayoutParams(View.java:8223)04-08 01:19:35.910:E/AndroidRuntime(11040):在android上。看法WindowManagerImpl。updateViewLayout(WindowManagerImpl.java:312)04-08 01:19:35.910:E/AndroidRuntime(11040):在android上。看法WindowManagerImpl$CompatModeWrapper。updateViewLayout(WindowManagerImpl.java:145)04-08 01:19:35.910:E/AndroidRuntime(11040):位于com。实例我的服务。UpdateLayers(TrackerService.java:353)04-08 01:19:35.910:E/AndroidRuntime(11040):位于com。实例主要活动5美元1美元。运行(MainActivity.java:219)
当我试图从相同的活动或服务更新它时,它会挂起,而不做任何其他事情。只是在循环中运行。
while (true) {
MyService.UpdateLayers();
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
那么,你能告诉我做这件事的正确方法吗?或者你能告诉我更新图层的方法吗。
您可以尝试使用处理程序。您可以像这样在主线程上定义一个处理程序-
protected Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg) {
switch(msg.what) {
case DO_SOME_VIEW_CHANGES:
{
// Your logic
break;
}
}
}
};
然后,您需要创建一个接收处理程序实例的线程,并在其中调用-
handler.send空消息(DO_SOME_VIEW_CHANGES);
希望有帮助。
我想自动安装/更新我的应用程序。它是spring boot中的web应用程序。用户在自己的服务器上运行此应用程序,而这些服务器通常无法从我的构建服务器访问。 要求 安装简单 更新可以被安排并且自动完成 尽可能少的依赖 在windows服务器和linux上运行 可靠性 当前原型 我们目前的原型是基于docker的。实际上有6个docker图像(我们的应用程序是2个docker、望塔、监控代理、zuu
我是詹金斯的新手。我有一个作业,当我进入配置时,我看到它计划在美国东部夏令时12:25:03运行 建造时间表:H(0-3)*** 我想把它改为在美国东部夏令时上午8:15运行,我该怎么做? 如果我想运行不止一次,例如美国东部时间上午8:15和下午2:15,我怎么能做到这一点? 那个H H(0-3) * * * 代表什么?
我真的用这个把我的头撞到墙上了…:-\ 我有一个哑组件,它具有接收数组的: 父组件通过模板绑定和管道将数组传递给子组件: 这样做正确吗? 但是,发出新值时,子组件中不会激发。 我有一个类来维护这个可观察的项目数组。获取新项目时,它会生成一个新数组(不可变),并将其推送到observable。但是,在子组件中未检测到更改。如果我在页面周围单击一点,最终将启动更改检测,它将更新。 关键是:我在Stac
从一个计划升级和更改到另一个计划是很容易的。 注意:如果您是 Premiere Rush 用户并想要升级存储,请查看此文章。 升级计划或查看选项 您可以将月度计划升级为年度计划(按月付费或按年付费)— 且不需要为您的现有计划支付取消费。升级后,您会收到之前的会员资格中未使用部分的退款。 使用您的 Adobe ID(通常是您的电子邮件地址)和密码登录到 Adobe ID 帐户。 在“计划”下,单击“
问题内容: 我在Java文档中看到了这一点:ScheduledAtFixedRate,它说 如果该任务的任何执行遇到异常,将禁止后续执行 我不希望在我的应用程序中发生这种情况。即使看到异常,我也总是希望后续执行继续进行。我怎样才能从。 问题答案: 用try / catch包围Callable.call方法或Runnable.run方法… 例如: 请注意,捕获除编译器也告诉您的内容之外的其他内容(在
问题内容: 我有一张桌子 PK在哪里,fk是外键。fk的值并不多,大约20。f2永远不会大于3。但是,有很多对。是。 现在,假设我们正在将100和200映射到A,将300和400映射到B,将500映射到C- 这个映射是给定的。我们想留下来。到目前为止,这大致可以通过以下方式解决 现在,问题在于我们需要在映射表中保留f2值0、1、2,因此这是期望的结果: 我真的很想将其保留在MySQL中。 问题答案