1

我有一些我想要执行的定期处理。我是这样设置的:

periodicHandler = new Handler(new Handler.Callback()
{
    public boolean handleMessage(Message msg)
    {
        doPeriodicStuff();

        // schedule the next call
        periodicHandler.sendEmptyMessageDelayed(0, PERIODIC_INTERVAL);

        return true;
    }
});

// schedule the initial call
periodicHandler.sendEmptyMessageDelayed(0, INITIAL_DELAY);

我有一些问题:

  • 当应用程序在后台时,这些处理程序会触发吗?(如果没有,当应用程序返回前台时是否会触发任何过期的处理程序?)
  • 这些排队的消息会让应用程序“活着”吗?也就是说,这些排队消息的存在是否会阻止 Android 杀死应用程序,即使所有活动都消失了?
4

2 回答 2

1

您应该考虑使用服务。它更擅长维护后台任务,您可以将其配置为仅在内存极低的情况下停止运行。

于 2012-07-27T21:32:45.730 回答
1

这些排队的消息会让应用程序“活着”吗?也就是说,这些排队消息的存在是否会阻止 Android 杀死应用程序,即使所有活动都消失了?

不会。Android 可以并且会在需要时终止您的进程。

于 2012-07-27T23:21:39.573 回答