【发布时间】:2011-06-19 18:05:04
【问题描述】:
我构建了一个收集有关电池数据的应用程序。为了收集这些数据,我需要我的应用程序在后台运行,以便能够收集这些数据。 我该怎么做?
【问题讨论】:
标签: android background
我构建了一个收集有关电池数据的应用程序。为了收集这些数据,我需要我的应用程序在后台运行,以便能够收集这些数据。 我该怎么做?
【问题讨论】:
标签: android background
您需要将您的活动更改为Service
【讨论】:
如果您出于某种原因反对使用服务,则可以将其关闭,然后在用户将应用程序调用到前台时获取数据。
您可以使用 onStart、onPause、onResume 函数以及使应用程序成为单个实例,这样当您再次运行它时,它会从内存中提取它(假设 Android 出于某种原因不会杀死它)。
您可以使用持续通知来防止它在后台被杀死并移动TaskToBack。
但正如 pentium10 所说,处理后台进程的预期方法是通过一个服务来收集您正在寻找的数据,然后当活动回到前面时,它会从服务中获取数据并显示它。
【讨论】:
- @Override public int onStartCommand(Intent intent, int flags, int
startId) {
handleCommand(intent);
// We want this service to continue running until it is explicitly
// stopped, so return sticky.
return START_STICKY; }
【讨论】: