- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用启动 IntentService 的 BraodCastReceiver。一切看起来都很好,但我收到这个错误,我不知道它的来源:
android.app.ServiceConnectionLeaked: Service com.merchantech.app.smartdiscount.MyIntentService has leaked ServiceConnection com.clover.sdk.v3.order.OrderConnector@535008f4 that was originally bound here
at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
at android.app.ContextImpl.bindService(ContextImpl.java:1426)
at android.app.ContextImpl.bindService(ContextImpl.java:1415)
at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
at com.clover.sdk.v1.ServiceConnector.connect(ServiceConnector.java:119)
at com.clover.sdk.v1.ServiceConnector.waitForConnection(ServiceConnector.java:148)
at com.clover.sdk.v1.ServiceConnector.execute(ServiceConnector.java:209)
at com.clover.sdk.v3.order.OrderConnector.getOrder(OrderConnector.java:153)
at com.merchantech.app.smartdiscount.MyIntentService.onHandleIntent(MyIntentService.java:41)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.os.HandlerThread.run(HandlerThread.java:60)
这是我的 BrodcastReceiver 类:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals("com.test.intent.action.LINE_ITEM_ADDED")) {
Intent i = new Intent(context, MyIntentService.class);
context.startService(i);
}
}
}
这是我的 IntentService 类:
public class MyIntentService extends IntentService {
public MyIntentService() {
super("MyIntentService");
}
@Override
protected void onHandleIntent(Intent intent) {
orderItem.addLineItem(orderId, lineItemId, var);
}
}
最佳答案
该错误消息基本上意味着某些组件创建了一个到 Service
的绑定(bind),并且在该组件被销毁之前没有从该服务解除绑定(bind)。
您需要提供有关应用结构的更多信息,以便更好地回答您的问题。我会做一些猜测,也许会给你一些关于要探索的东西的想法。
我猜您正在使用来自 Clover 的库,也许还有 Merchantech。或者 Clover 库可能使用 Merchantech 库。我还猜测 orderItem
是 Clover 定义的类的一个实例,而不是你。
Android 运行时在 onHandleIntent()
完成并且没有更多 Intent 请求排队后销毁 IntentService
。您可以通过将 onDestroy()
方法添加到您的 MyIntentService
来确认这一点,并使用 Log 命令显示它何时被调用。这意味着在您为 onHandleIntent()
发布的代码中,您的 IntentService 将在 addLineItem()
调用完成后立即销毁。
堆栈跟踪表明调用 orderItem.addLineItem()
触发的处理导致绑定(bind)到另一个服务。在某个地方,该绑定(bind)没有得到适当的管理——可能在应该解除绑定(bind)的时候没有解除绑定(bind)。当您的组件(Service 或 Activity)被销毁时,Clover 子系统是否希望您“关闭”它或“释放”资源?
关于android - 服务泄露了最初绑定(bind)在这里的 ServiceConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31296480/
无法清除输出流:java.net.SocketException:关闭失败:EBADF(错误文件编号) 有没有人得到这个,有没有解决这个异常的方法? 最佳答案 这可能意味着您没有写入该文件的权限或者它
我很困惑。 我有一个我认为需要实现服务的应用程序。该服务特定于应用程序;当应用程序实际死亡或被手动终止时,该服务就会消失。应用程序将与服务保持持续通信,最好是通过服务本身的 Activity 调用方法
调用时出现以下异常: requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY); 2089-2089/? E/ActivityThread﹕ Se
这是调用我的服务的类: public class TicketList extends ListActivity { private ArrayList alTickets = new ArrayLi
我尝试将代码集成到 Blundell's in-app purchasing example 中进入我自己的应用程序,它几乎可以正常工作。我做了一个名为 shop.java 的 Activity ,它
我在我的应用程序中使用 TTS。在 onPuase 方法期间,我使用以下代码停止引擎。问题是每当我暂停 Activity 说使用主页按钮时,我都会收到粘贴在日志猫部分中的错误。我从日志 cat 中了解
我在搞乱 Android 服务,我发现当我绑定(bind)到服务时,ServiceConnection.onServiceConnected() 会被相当可预测地调用。 但是,我的 onService
我有一个带有私有(private)字符串属性的MainActivity。在我的代码中,我有以下内容: private ServiceConnection mTransactionServiceConn
我打开一个应用程序做了一些事情,然后应用程序崩溃了。我再次打开它并收到此错误。我想知道这个错误的原因和解决方法。谁能帮忙。 15 01:25:59.698 31122-31122/com.my
我在 SO 上找到并阅读了各种帖子,其中提到您应该使用 getApplicationContext()绑定(bind)到 Service 时- 而不是 this (在 Activity 中)或 get
我正在开发绑定(bind)到本地服务的 Activity (在 Activity 的 onCreate 中): bindService(new Intent(this, CommandService.
我有一个与此相关的问题 question @mnish 大约一年前问过这个问题。 请看一下他的问题和代码。他实现了一个 ServiceConnection() 并将其传递给 bindService()
我有几个 Android Service,我想在我的 Activity 中绑定(bind)它们,因此我可以监视用户的多个操作。 为了能够绑定(bind)每个服务,我将有多个服务,我是否需要在我的 Ac
我正在使用启动 IntentService 的 BraodCastReceiver。一切看起来都很好,但我收到这个错误,我不知道它的来源: android.app.ServiceConnectionL
我有一个在启动时使用文字转语音的应用程序。一切似乎都运行良好,运行该应用程序时我没有遇到任何问题。但是,每次应用程序启动时,我都会收到一个 LogCat 错误,提示我的文本到语音转换中存在泄漏的 Se
我有一个非常简单的 Activity : public class MainActivity extends Activity { private Intent serviceInt
我正在使用 AIDL 在客户端 Activity 和服务之间执行 IPC。 ServiceConnection.onServiceConnected() 似乎在使用 bindService() 绑定(
我让这个应用程序监听传入的消息并大声朗读它们。问题是我退出时出现以下错误 12-21 15:45:29.949: E/ActivityThread(566): Activity mo.rach.col
能否请您向我解释一下,当我们绑定(bind)到服务但从不启动它然后解除绑定(bind)时会发生什么?我收到“Activity 泄露了一个服务连接错误”,但我不明白为什么。 我的服务: 包 com.ex
我在这里查看 Android 应用内结算教程: http://developer.android.com/guide/google/play/billing/billing_integrate.htm
我是一名优秀的程序员,十分优秀!