Android:关闭我的应用时启动我的服务

时间:2016-03-20 00:42:36

标签: android service background

基本上我每隔30分钟运行一次服务来检查我的位置,当位置发生变化时,会弹出一个基本通知。我的应用关闭时(停止/暂停时)我只需要这项服务。所以我问我应该在哪里开始我的活动服务?

我想要像Facebook,Instagram和大多数应用程序类似的东西......从后台运行的服务,当弹出通知时,只需打开应用程序。当应用程序打开时,服务不应该做任何事情。

我尝试了onDestroy()方法(在我的MainActivity中),但没有用,而onStop()方法也没有。

我自己解释一下吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

应使用redirect_to root_url flash[:Danger] = "There was an error with processing your payment. Please try again." (或AlarmManager)安排重复任务。

这通常在对JobScheduler作出反应的BroadcastReceiver中完成。

如果您想在活动处于活动状态时取消此类作业,请在BOOT_COMPLETEDAlarmManager中的onResume上调用相应的方法。

答案 1 :(得分:0)

如果您希望在关闭应用后,您的服务始终在后台运行,则需要提供服务STICKY,然后您可以在OnStartCommand

中执行此操作
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Log.i("LocalService", "Received start id " + startId + ": " + intent);
    // We want this service to continue running until it is explicitly
    // stopped, so return sticky.
    return START_STICKY;
}

请注意,它返回START_SICKY,告诉操作系统在有足够内存后重新创建服务,并再次使用null意图调用onStartCommand()。

另请阅读application:persistent,即“应用程序是否应始终保持运行”。这更麻烦 - 系统会尽量不杀死你的应用程序,这将影响系统中的其他人,你应该小心使用它。