![]() |
1
481
好吧,因为这个问题还没有解决,有3个简单的方法来处理这个问题。 下面是一个例子,显示了所有3和底部是一个例子,只是显示了方法,我认为是可取的。还要记住在onPause中清理任务,必要时保存状态。
要记住的主要一点是,UI只能从主UI线程进行修改,因此请使用处理程序或活动.runouithread(可运行r); 这是我认为最好的方法。
|
![]() |
2
86
很简单!
然后扩展计时器任务
免责声明:这不是理想的解决方案。这是使用Timer类的解决方案(如OP所要求的)。在androidsdk中,建议使用Handler类(在接受的答案中有示例)。 |
![]() |
3
70
如果您还需要在UI线程(而不是计时器线程)上运行代码,请查看博客: http://steve.odyfamily.com/?p=12
|
![]() |
4
45
如果您只想安排一个倒计时直到将来某个时间,并在一路上定期通知,那么您可以使用 CountDownTimer 自API级别1起可用的类。
|
![]() |
5
28
下面是一些简单的计时器代码:
|
|
6
13
我想你可以这样做:
接收定时器 http://reactivex.io/documentation/operators/timer.html |
![]() |
7
11
因为这个问题仍然吸引了很多来自google搜索的用户(关于Android timer),我想插入我的两个硬币。 Timer 类将在Java9中被弃用 (read the accepted answer) . 这个 official 建议的方法是使用 ScheduledThreadPoolExecutor 它更有效,功能更丰富,可以额外安排命令在给定延迟后运行,或定期执行。此外,它还为ThreadPoolExecutor提供了额外的灵活性和功能。
希望你会发现这对在Android中创建任务很有用。 完整示例:
|
![]() |
8
8
我很惊讶,没有一个答案会提到解决方案 RxJava2 . 它非常简单,并且提供了一种在Android中设置计时器的简单方法。 首先,您需要设置Gradle依赖项,如果您还没有这样做:
非重复任务
,我们可以使用
为了
,您可以使用
为了避免不必要的内存泄漏,您应该确保在活动/片段被销毁时取消订阅。 |
![]() |
9
4
谁想在科特林这样做:
要停止计时器,可以使用以下命令:
这个函数还有很多其他的选项,试试看吧 |
![]() |
10
2
您希望您的UI更新发生在已经存在的UI线程中。 最好的方法是使用一个处理程序,该处理程序使用postDelayed在延迟后运行Runnable(每次运行都安排下一次);使用removeCallbacks清除回调。 您已经找到了正确的位置,所以请再看一遍,也许可以澄清为什么代码示例不是您想要的。(另见同一条第 Updating the UI from a Timer ). |
![]() |
11
1
他是更简单的解决方案,在我的应用程序中运行良好。
|
![]() |
12
1
这里有一个简单可靠的方法。。。 将以下代码放入活动中,当活动处于“恢复”状态时,UI线程中的tick()方法将每秒调用一次。当然,您可以更改tick()方法来做您想做的事情,或者或多或少地被调用。
对于那些感兴趣的人来说,“\u h0=\u handler”代码是必要的,以避免在活动暂停并在计时周期内恢复时两个计时器同时运行。 |
![]() |
13
1
也可以使用动画制作工具:
|
![]() |
14
1
对于那些不能依靠 Chronometer ,我根据其中一个建议做了一个实用类:
.....
|
![]() |
15
0
您需要创建一个线程来处理update循环,并使用它来更新textarea。不过,棘手的部分是,只有主线程才能真正修改ui,因此更新循环线程需要向主线程发出信号来执行更新。这是使用处理程序完成的。 http://developer.android.com/guide/topics/ui/dialogs.html# 单击标题为“示例ProgressDialog with a second thread”的部分。这是一个确切的例子,你需要做什么,除了一个进度对话框,而不是一个文本字段。 |
![]() |
16
0
|
![]() |
17
0
如果有人感兴趣的话,我开始尝试创建一个标准对象来运行在activities UI线程上。似乎还可以。欢迎评论。我希望这是可用的布局设计师作为一个组件拖到一个活动。真不敢相信这样的事情还不存在。
在活动中,我有一个开始:
|
![]() |
18
0
.xml文件
|
![]() |
19
0
|
![]() |
20
0
我把计时器抽象出来,把它变成一个单独的类:
并从中提取主要作用
我就是这样用的:
我希望这有帮助 |
![]() |
21
0
然后在onCreate下面
这是解决这个问题的简单方法。 |
|
22
0
|
![]() |
Murilo · Jetpack编写导航栏项目图标 4 月前 |
![]() |
KolaYAndr · 活动RESULT_OK似乎从未发生过 5 月前 |
![]() |
psycho_pat · Android应用程序中的权限 5 月前 |
|
FarazFiroz · 如何将argb转换为描述性文本颜色 6 月前 |
![]() |
Daniel · Unity Android游戏支持的设备数量太少 6 月前 |