Java android服务中的android.os.deadobjectexception
我有一个应用程序,它从服务中获取数据值(坐标),工作正常,但在大约7或8分钟后崩溃 在logcat中,出现了很多这样的消息: 02-24 09:50:35.761:E/RemoteException(6395):android.os.DeadObjectException 这些消息来自应用程序而不是服务,但我想这是因为服务失败 [更新] 有了这些评论,我更明白问题是由服务失败引起的,但我读了这个问题(与我的问题类似),但答案。。。这让我有些困惑 这是我的Java android服务中的android.os.deadobjectexception,java,android,service,Java,Android,Service,我有一个应用程序,它从服务中获取数据值(坐标),工作正常,但在大约7或8分钟后崩溃 在logcat中,出现了很多这样的消息: 02-24 09:50:35.761:E/RemoteException(6395):android.os.DeadObjectException 这些消息来自应用程序而不是服务,但我想这是因为服务失败 [更新] 有了这些评论,我更明白问题是由服务失败引起的,但我读了这个问题(与我的问题类似),但答案。。。这让我有些困惑 这是我的ondestroy(): 我如何知道哪个元
ondestroy():
我如何知道哪个元素关闭了我的服务?当父进程停止时,您正在使用内存中不再存在的对象实例。将此添加到服务类中。这将阻止应用程序崩溃。”当应用程序从ram中删除时,将触发onTaskRemoved
@Override
public void onTaskRemoved(Intent rootIntent){
stopSelf();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
super.onTaskRemoved(rootIntent);
}
@Override
public void onDestroy() {
super.onDestroy();
//Your Runnable
mRunnable=null;
}
你呼叫的对象已死亡,因为它的托管进程已不存在。请访问此网站,我将更新de Post。我认为您的服务已停止,因为它绑定到的活动已被销毁。因此,解决方案是在Activities
onDestroy
中停止该服务?是的,如果活动完成后您不需要它,否则您可以在Destroy中解除服务绑定并保留它服务正在运行,但要访问服务实例,请记住将实例设置为静态。为什么这里需要Thread.sleep?谢谢
@Override
public void onTaskRemoved(Intent rootIntent){
stopSelf();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
super.onTaskRemoved(rootIntent);
}
@Override
public void onDestroy() {
super.onDestroy();
//Your Runnable
mRunnable=null;
}