我试图建立一个Android应用程序,它将每隔10分钟反复运行一些程序。 因为我发现Handlers
比定时器或调度更可靠。所以我打算使用下面给出的代码使用Handlers
开发我的应用程序。重复任务的Android Handler - 它会重叠吗?定时器任务VS处理程序VS闹钟管理器
我有点担心下面的代码会在每次启动应用程序并保持它们并行运行时创建单独的Handlers
,可能是因为我在onCreate
上创建了Handler
。
那么最好的办法是保持一次只能在后台运行一个Handler
?
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
handler = new Handler(); // new handler
handler.postDelayed(runnable, 1000*60*10); // 10 mins int.
setContentView(R.layout.activity_pro__sms);
}
private Runnable runnable = new Runnable() {
@Override
public void run() {
/* my set of codes for repeated work */
foobar();
handler.postDelayed(this, 1000*60*10); // reschedule the handler
}
};
只是想知道:“重复劳动”的背景是什么?或者更好的说:它是一种什么样的应用程序?这可能是一个非常慷慨的假设,认为用户一次将主动使用您的应用10分钟以上(除非它像游戏或其他,因此我的问题)。当你的应用程序不在前台时使用'Handler',可能无法采取正确的行动。 – 2014-10-04 08:05:54
为什么不使用服务? – 2014-10-04 17:22:31
即使在睡眠模式下运行,我也不需要错过任务。即使在空闲(睡眠)模式下,服务是否可以激活?或者我需要有一个唤醒锁。与AlarmManager相比,服务中的资源使用情况如何(现在我正在尝试使用警报管理器) – 2014-10-04 17:30:43