Android开发:如何在不使用应用程序时运行线程

时间:2014-12-04 10:50:06

标签: java android sqlite

所以我提出了一个应用程序的想法,该应用程序需要收集数据并将其放在数据库中,而您可以在另一个应用程序中使用或者甚至不使用手机。我已经尝试过使用Service类,但据我所知,例如使用Service,运行会降低用户界面速度的任务。我想要这个,但我也想让它在应用程序之外运行。有没有办法做到这一点?

5 个答案:

答案 0 :(得分:1)

  

例如,使用服务,运行会降低用户速度的任务   接口

如果您在服务中运行的任务很重,可能会发生这种情况。您仍然可以使用IntentService,它使用不同的线程来执行任务

答案 1 :(得分:1)

您对使用服务的想法是正确的。即使您的应用程序未被使用,它也是在后台运行线程的唯一方法。如果您想阻止Android杀死它,可以将服务设置为前台服务。

答案 2 :(得分:1)

服务是一个应用程序组件,可以在后台执行长时间运行的操作,但不提供用户界面。另一个应用程序组件可以启动服务,即使用户切换到另一个应用程序,它也将继续在后台运行。此外,组件可以绑定到服务以与其交互,甚至执行进程间通信(IPC)。例如,服务可以从后台处理网络事务,播放音乐,执行文件I / O或与内容提供商交互。

您可以在Official Android Documentation with Samples

上阅读更多内容

答案 3 :(得分:0)

首先,服务与UI无关,因为它在完全不同的线程上运行,所以它不会降低UI的速度。

您应该考虑使用Intent服务。这是教程

http://javatechig.com/android/creating-a-background-service-in-android

答案 4 :(得分:0)

不要使用线程进行后台工作。在服务中使用 AlarmManagar (AL)的服务。在那你想要给出一些特定的时间段。所以(AL)它将触发您想要在后台执行的服务,这意味着不与app进行交互。为了更有效地工作,请使用 IntentService 而不是普通服务。所以它比服务更有效。