Android处理程序是否保持App活着?

时间:2012-07-27 21:29:09

标签: android android-handler

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

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杀死应用程序?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

  

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

没有。 Android可以并且会在需要时终止您的流程。