关于IntentService工作的问题

时间:2015-06-07 17:20:16

标签: android intentservice

我是Android App Development的初学者。我正在尝试实施IntentService,以便在用户点击“启动服务”时在后台运行流程。主要活动中的按钮。这个过程很小,通常在点击按钮几秒后就完成了。但即使在应用程序关闭后,也必须定期运行该小进程。这是代码:

protected void onHandleIntent(Intent intent)
{
    Log.i(TAG, "The service has now started");
    //getting the source code of a html link
    Log.i(TAG,"Task has been completed");
   }

如果我在IntentService过程中保持Main Activity打开,我会在Log Cat中收到这两条消息。但是,如果我在按下“启动服务”后立即关闭应用程序。主要活动中的按钮,我只收到第一条消息,即'服务现已启动'。这是否意味着如果我关闭应用程序,该过程无法完成?为什么会这样?我该怎么做才能克服这个问题?

1 个答案:

答案 0 :(得分:0)

根据IntentService docs,您的服务与应用程序主线程之间没有链接。

  

IntentService是处理异步的Services的基类   请求(表示为Intents)。客户端发送请求   通过startService(Intent)调用;该服务根据需要启动,   使用工作线程依次处理每个Intent,并自行停止   当它用完了。

     

此“工作队列处理器”模式通常用于卸载任务   来自应用程序的主线程。 IntentService类存在于   简化这种模式并处理机制。要使用它,   扩展IntentService并实现onHandleIntent(Intent)。   IntentService将接收Intents,启动一个工作线程,并且   酌情停止服务。

我认为你没有在LogCat中获取日志,因为应用程序已关闭。但是该服务没有您的应用程序标记就进行了记录。