Tag: android service

在保持唤醒锁定和调用startForeground之后服务被杀死

即使我持有唤醒锁并且我已经调用了startForeground ,我遇到的问题是我的服务被杀死了。 当平板电脑(华硕Transformer TF101)发生这种情况时, 停止服务而不调用onDestroy 。 没有其他应用程序可见,log cat显示任何不寻常的内容(没有’内存不足’消息等)。 被杀后,服务立即重新启动。 我正在开发的应用程序是一个聊天客户端,需要一个持续的连接,它也是基于插件的,所以我的应用程序是这样开发的:客户端 – HostService – 多个子’服务’。 主机服务是粘滞的,持有唤醒锁并调用startForeground(并显示通知),子服务不粘,不保持唤醒锁并且是后台服务。 如果客户端本身是打开的,则问题不会发生,但我要使用的模型是用户可以使用该设备并保持连接(接收消息等),而无需始终打开客户端本身。 任何人都可以提供任何解释为什么服务以这种方式被杀死,如果是这样,防止它发生? 当聊天客户端显示用户登录和注销时,并且服务死亡会终止所有打开的连接,这会使聊天客户端“反弹”。 目前,它似乎发生在每15到45分钟之间。 此外,如果有人知道如何在没有整个连接持续时间的唤醒锁的情况下持续打开套接字连接,我很乐意听到它! 主机服务源的修剪测试用例版本如下。 public class HostService extends Service { PowerManager m_powerManager = null; PowerManager.WakeLock m_wakeLock = null; @Override public IBinder onBind( Intent intent ) { return m_serviceImplementation; } @Override public void onCreate() { super.onCreate(); } @Override public […]

AIDL接口找不到Parcelable类的导入

我的问题似乎与这个问题类似,但这个问题有点不同。 我正在创建一个库项目中的AIDL服务,并在我的应用程序中使用它。 我有一个类在我的应用程序中的车辆,我已经做了parcelable,以便我可以在我的界面中使用它。 (我想从我的服务中获取一份车辆列表到我的应用程序中) 我是否需要在应用程序和库中使用Vehicle.java? 两者都需要Vehicle.aidl吗? 我在应用程序和库中都有Vehicle.java AND Vehicle.aidl,我开始在我的应用程序中遇到一个问题,当我从我的界面调用一个方法时,eclipse希望我将它定义为库类的Vehicle而不是应用程序(虽然它们是相同的并且都是可以分配的)。 public List getVehicles(){…code… } 为了解决这个问题,我尝试将其作为应用程序的车辆类而不是我的IRemoteInterface.aidl中的库的车辆类(在下面列出的变体中,我收到一个无法找到导入的错误。在其他变体中比如让它成为List并且没有导入,它表示未知的返回类型)。 package LIBRARY; import LIBRARY.RelPoint; import LIBRARY.IRemoteServiceCallback; import LIBRARY.FleetStatus; import APPLICATION.Vehicle; interface IRemoteInterface { int getPid(); void registerCallback(IRemoteServiceCallback callback); void unregisterCallback(IRemoteServiceCallback callback); List getVehicles(); } 这是我的应用程序中的parcelable Vehicle类 : package APPLICATION; import java.util.Date; import android.os.Parcel; import android.os.Parcelable; public class Vehicle implements Parcelable { […]