Android服务停止,如何通知应用程序?

Android服务停止,如何通知应用程序?,android,service,android-pendingintent,Android,Service,Android Pendingintent,我有一个像框架一样工作的应用程序——其他应用程序可以在我的应用程序中注册一个PendingEvent,在将来某个时候触发它们。我将PendingEvents保存在服务的数组列表中,然后迭代它们以触发。要注册意图,应用程序将使用意图包中的PendingEvent集调用“startService()” 在某个时刻,我的服务正在被关闭——或者更具体地说,我的数组列表正在被清空(这只能通过Android停止服务来实现),因此我失去了注册应用的挂起帐篷 我怎样才能保证我的服务继续有效,或者更具体地说,如何

我有一个像框架一样工作的应用程序——其他应用程序可以在我的应用程序中注册一个PendingEvent,在将来某个时候触发它们。我将PendingEvents保存在服务的数组列表中,然后迭代它们以触发。要注册意图,应用程序将使用意图包中的PendingEvent集调用“startService()”

在某个时刻,我的服务正在被关闭——或者更具体地说,我的数组列表正在被清空(这只能通过Android停止服务来实现),因此我失去了注册应用的挂起帐篷

我怎样才能保证我的服务继续有效,或者更具体地说,如何保证我的挂件不丢失?我不想违背安卓系统的机制,制造一种黑客行为,我想知道谷歌认为应该用什么方式来实现这一点。

你试过吗


您可以尝试

当服务被终止时,调用它的onDestroy()方法。您可能会超越onDestroy()方法,执行以下操作:

public void onDestroy(){
Intent intent = new Intent();
intent.setAction("SERVICESTOPPED");
sendBroadcast(intent);
super.onDestroy();  
}   
有一个广播接收器来倾听这个意图,并在情况发生时处理它。
或者,在onstartCommand()中,如果将返回值指定为START_STICKY,则如果服务被操作系统终止,操作系统将重新启动服务。通常情况下,长时间运行的服务会出现这种情况

我没有,但我会尝试一下。我的印象是,这并不能保证服务保持开放,而是向操作系统暗示它应该保持开放?这并不能保证服务保持开放,而是告诉操作系统在资源再次可用时重新创建服务。但是START_STICKY的一个问题是onStartCommand中的bundle是空的,这是我正在努力寻找解决方法的原因,因为我现在正面临这个问题。
public void onDestroy(){
Intent intent = new Intent();
intent.setAction("SERVICESTOPPED");
sendBroadcast(intent);
super.onDestroy();  
}