基本上我每隔30分钟运行一次服务来检查我的位置,当位置发生变化时,会弹出一个基本通知。我的应用关闭时(停止/暂停时)我只需要这项服务。所以我问我应该在哪里开始我的活动服务?
我想要像Facebook,Instagram和大多数应用程序类似的东西......从后台运行的服务,当弹出通知时,只需打开应用程序。当应用程序打开时,服务不应该做任何事情。
我尝试了onDestroy()方法(在我的MainActivity中),但没有用,而onStop()方法也没有。
我自己解释一下吗?
谢谢!
答案 0 :(得分:0)
应使用redirect_to root_url
flash[:Danger] = "There was an error with processing your payment. Please try again."
(或AlarmManager
)安排重复任务。
这通常在对JobScheduler
作出反应的BroadcastReceiver
中完成。
如果您想在活动处于活动状态时取消此类作业,请在BOOT_COMPLETED
和AlarmManager
中的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,即“应用程序是否应始终保持运行”。这更麻烦 - 系统会尽量不杀死你的应用程序,这将影响系统中的其他人,你应该小心使用它。