问题标签 [timertask]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5405 浏览

android - 如何在 AppWidgetProvider 中调用 onUpdate()?

这是我的代码...

我只想在单击 R.id.update 时更新 widget_title 和 widget_textview 它应该运行函数 getString 从其他类中获取字符串,以便可以将新字符串传递给 textview ...

任何想法?

0 投票
1 回答
22862 浏览

android - Android 中的 Timer 和 TimerTask

我的程序需要一个计时器。我已经编写了它,它在模拟器程序(Android 1.5/2.2)中的 PC 上运行良好。但它不适用于真实设备(Android 1.5)。我究竟做错了什么?

0 投票
4 回答
12987 浏览

java - 如何在运行时更改 TimerTask 的执行周期?我

如何在运行时更改 Timer 的周期?

0 投票
5 回答
79298 浏览

android - 如何在固定时间间隔后重复执行异步任务

如何让异步任务在某个时间间隔后重复执行,就像定时器一样...实际上我正在开发一个应用程序,它将自动从服务器下载所有最新的未读问候语,为此我必须在一些修复后检查来自服务器的更新时间间隔....我知道这可以通过计时器轻松完成,但我想使用我认为对 android 应用程序更有效的异步任务。

0 投票
5 回答
7615 浏览

android - Android:使用 AsyncTask 进行重复 Ajax 调用的含义

我需要我的 Android 应用程序使用 AJAX 调用定期从服务器获取数据,并相应地更新 UI(只是一堆TextView需要更新的 s setText())。请注意,这涉及 2 个任务:

  1. 进行 AJAX 调用,并在收到响应后更新 UI - 我为此使用了一个简单AsyncTask的方法。
  2. 定期重复上述操作。

我还没有想出一个优雅的方法来实现上面的第 2 点。目前,我只是从OnPostExecute(). 我在 SO 的这个线程上读到,就AsyncTask 对象而言,我不必担心垃圾收集。

但是我仍然不确定如何设置一个计时器,它会在我的 AsyncTask 到期后触发它。任何指针将不胜感激。这是我的代码:

}

提前致谢

编辑:我尝试发布答案但无法做到,因为我没有在 8 小时内回答的声誉。

好吧,所以我找到了解决方案。然而我并不相信。

  1. 当我使用它时,是否有任何反面需要注意?特别是,我看到 LogCat 中发生了很多 GC。另外,我想知道AsyncTask除非完成,否则如何成为 GC 的候选人onPostExecute()

  2. 如何“停止”更新?我想到的一种方法是将第一个AsyncTask实例作为Activity. 这样,我可以调用cancel(true)它并希望这将“停止”任务。


解决方案

如果有人正在寻找类似的东西 - 我在这里提到的解决方案都不能令人满意。他们都饱受OutOfMemory问题之苦。我没有调试 OOM 的细节,但我怀疑这可能是因为递归,或者因为 HTTP 相关对象作为成员变量AsyncTask而不是成员Activity(基本上是因为没有重用 HTTP 和其他对象)。

我放弃了这种方法,换了一种方法——使我的 Ajax 调用无休止地出现在doInBackground()我的AsyncTask; 并在onProgressUpdate(). 这样我也避免了维护太多线程或Handler更新 UI 的开销(记住 UI 可以在 中更新onProgressUpdate())。

这种方法也消除了对Timers 和TimerTasks 的需要,而倾向于使用 of Thread.sleep()SO上的这个线程也有更多细节和代码片段。

0 投票
1 回答
2541 浏览

java - 如何正确使用 Java 中的 Timer 和 TimerTask 方法在画布上创建一个不断摆动的移动对象?

我正在尝试创建一个使用画布绘制位图的 2D 游戏,这些位图是游戏中的对象。目前,我在屏幕上来回移动对象时遇到问题(对象的名称是目标。)我尝试使用 Timer 和 TimerTask 作为使其工作的手段,以及创建一个新的处理程序,但没有似乎工作。游戏运行时,您可以看到目标在指定像素上移动一次(这是一个重复的时间,使它移动。)然后应用程序崩溃给我(对不起!-强制关闭对话框。我做错了什么?

MainActivity代码(不是很重要,只是触发有问题的GameActivity): package app.AngryCannonShooterActivity;

这是我的 GameActivity 代码:

0 投票
0 回答
647 浏览

android - 如何将定期定时器任务更改为动态定时器任务

我正在构建一个无线电流应用程序。我需要根据曲目变化更新用户界面。我有回调时间,我需要知道如何实现要实现的动态定时器任务。

  • 获取回电时间
  • 添加回调时间延迟
  • 获取回电时间
  • 添加回调时间延迟

这基本上就是我想要做的。有人可以告诉我这样做的优雅方式吗?

0 投票
1 回答
770 浏览

android - TimerTask Android 蓝牙

我正在实现一个在 Android 启动时启动的服务,它应该每 10 分钟扫描一次附近的蓝牙设备。当它发现设备时,它会做一些工作。此外,这种定期扫描应该在设备开启的整个过程中进行。我正在尝试安排 TimerTask,但我不明白如何使用它。我猜它应该启动这个服务并让服务完成工作,而不是在 TimerTask 的 run 方法中编写代码?我将如何从 TimerTask 启动服务,因为这似乎是解决我的问题的最简单方法,但 TimerTask 是 java.util 的一部分,而不是 Android 的类之一。

我刚刚找到了 Android 的 AlarmManager。我应该用那个吗?它可以启动服务吗?


到目前为止,我有这个,但我需要帮助:

myHandler.postDelayed(r,10 分钟); } }

r.run(); }

onDestroy() { super.onDestroy(); myHandler.removeCallback(r); }

} 类 MyService 扩展服务 { }

抱歉,我不明白这里的格式是如何工作的。

我需要覆盖服务中的 onDestroy() 吗?我在哪里使用 stopService() ?

0 投票
1 回答
1833 浏览

android - 延迟动作和广播接收器

我有一个案例,我必须在设备连接电源N 秒后开始一些非 UI 操作。该操作也可以由用户通过 UI 启动。

我在AndroidManifest.xml中定义了一个 BroadcastReceiver ,它监听ACTION_POWER_CONNECTED

我有一项服务需要对onStartCommand采取行动。我的问题是 - 如果广播触发操作,启动该服务的正确方法是什么?

我有两个选择:

  1. 一次性计时器任务。但是我认为这可能是错误的,因为根据文档,我无法从 BroadcastReceiver 启动任何异步任务。

  2. 重新设计服务:

    • 在onStartCommand开始操作,如果操作是由用户触发的
    • 启动计时器任务并在计时器拍摄时执行操作 - 与 1 中的逻辑相同。但在服务内部 - 如果操作是由广播触发的。

我倾向于 2。它会使代码更复杂一些,但它似乎是唯一正确的方法。

-列夫

0 投票
2 回答
5221 浏览

android - Android:计划重复的 TimerTask 只被触发一次

好的,这是我遇到的一个非常奇怪的问题,我很确定我在某个地方搞砸了,但我不太清楚在哪里。

我正在尝试的是-

  • 安排 a每五秒Timer执行一次TimerTask
  • TimerTask依次执行一个(在这种AsyncTask情况下,它简单地休眠一秒钟,然后返回 AsyncTask 数量的静态计数)。
  • 最后,上述计数在 UI 中更新。

当然,适当Handler的 s 和Runnables 已用于将来自其他线程的异步消息发布到 UI。

此代码只执行一次。我希望它每 5 秒触发一次。这是代码。

注意:我不知道如何处理Looper. 经过反复试验,我把它放在那里!

谁能指出我做错了什么?