问题标签 [android-service-binding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
621 浏览

android - Android:bindService 总是返回 false(扩展 APK api)

我正在尝试使用 Google 的 APK 扩展扩展来下载我托管的扩展文件。我还使用 SampleDownloadActivity 中的代码来执行此操作,尽管稍作修改以适合我的应用程序。

我的问题是永远不会启动下载。在我实现 IDownloadClient 的类中,调用了 onStart(),但没有调用 onServiceConnected()。

我在 DownloaderClientMarshaller 中将其追溯到这一行:

这总是返回 false,因此服务未绑定。

我在 TabHost 中使用调用活动,这给其他人带来了问题。他们说您不能将 TabHost 上下文传递给连接函数,而不能将 Application 上下文传递给连接函数。我通过以下方式改变了这一点:

代替:

但这无济于事,我仍然是假的。如果这有所作为,我正在模拟器上进行所有测试。

我真的把头发拉出来了。如果有人有任何想法,我将非常感激!

0 投票
1 回答
748 浏览

android - bindService() 给出 NullPointerException 和 onServiceConnected() 从未调用过

首先让我说我已经搜索了很长时间,发现了很多类似的问题(关于 SO),但我还找不到任何解决这个问题的方法:

我有一个Service通过调用 startservice() 启动的 (jobcrawler)。在这个服务中,我启动了一个长时间运行的线程,它在某个时候调用了一个类(webservice),它的 init 看起来像这样:

在一些网络调用之后,类(webservice) 在一个名为recieveData() 的方法中接收数据。在 recieveData 我试图绑定到服务如下:

现在,我在调用 bindservice 的那一行得到了 nullpointerexemption。请注意,我实际上还没有尝试对服务做任何事情。我只是想绑定它。任何帮助将不胜感激......如果我有头发,我会把它拔出来!哈哈

这是我认为相关的一些附加代码。我的连接:

};

来自名为 MyLocalBinder 的服务的活页夹:

服务的onbind方法:

哦,这是我从服务内的线程加载类的地方,以防万一我应该使用不同的上下文或其他东西:

0 投票
1 回答
757 浏览

android - 如何在我的 Android 应用程序中处理进程间通信的必要性?

我的申请要求我定期执行以下操作:

  1. 定期向服务器发送心跳信息,每 15 秒一次
  2. 定期截屏并将它们发送到服务器,每 60 秒一次
  3. 向服务器发送消息并轮询服务器以获取消息,每 5 秒一次

我已经为上面列出的每个项目编写了服务,但这里是我需要帮助的地方,这些服务之间的通信......

心跳服务需要能够:

  1. 从屏幕捕获服务获取一些信息。
  2. 使用消息服务将消息排队。

屏幕捕获服务需要能够执行以下操作:

  1. 从我的应用程序中获取当前活动
  2. 使用消息服务将消息排队。

消息传递服务需要能够执行以下操作:

  1. 接收消息以排队等待从我的应用程序/服务发送到服务器
  2. 将从服务器接收到的消息发送到应用程序

有了所需的所有通信途径,我想知道如何做到这一点?我是否只需将我的应用程序绑定到所有服务?将服务绑定到其他服务?使用其他通讯方式?

即使我的应用程序不在前台,我也需要所有这些服务才能继续运行/运行。

0 投票
3 回答
5723 浏览

android - 从服务android更新我的活动中的列表视图

我有2节课,

1.活动类

2.服务类

当服务有任何更新时,我需要在我的活动中更新我的列表视图。实际上我像一个聊天应用程序一样尝试,我的服务总是检查我的数据库,如果它有任何新字符串,我需要在我的活动中更新而不重建,只需要刷新列表视图。我发现它将使用 iBinder 进行操作,但我不知道如何使用它。任何人都可以向我推荐一些代码示例。

参考页面

0 投票
1 回答
290 浏览

android - 无法启动服务 Intent { cmp=com.test/com.sense.service } U=0:未找到

当我启动一个放置在 jar 文件中的 android 服务时,会发生上述错误,该文件只不过是另一个库。

如果使用库作为源包,那么它工作正常。有什么建议吗?

0 投票
1 回答
858 浏览

android - 活动绑定服务抛出 NullPointerException

在我的活动中,我有实例变量LocalBinder mBinder ;ServiceConnection mConnection; andboolean mBound;`

onCreate我实例化 aServiceConnection并将其设置为mConnection如下所示:

我将 mBinder 设置为 nullonServiceDisconnected(ComponentName className)

问题似乎是调用绑定服务使用:

永远不会发生...因此永远不会调用 ServiceConnection...当我在LocalBinder类中使用公共方法时,它会引发异常,因为 binder 为 null。

我有一个非空ServiceConnection对象,并且正在使用正确的上下文。Activity 在应用程序启动时启动。LocalBinder您可能已经猜到了LocalService.

本地服务如下所示:

该服务在我实现时启动onStartCommandstartService(intent);但它不会绑定...即使bindService返回 true,Service Connected 也不会显示...因此 IBinder 未传递给导致 NullPointerException 的 Activity

0 投票
1 回答
1952 浏览

android - 应用程序内的android远程服务与单独的应用程序

我试图弄清楚将 android 远程服务作为我的客户端应用程序的一部分(使用 android:process=":remote")与使其成为单独的服务应用程序的优缺点。

在这两种情况下,服务都将在自己的单独进程中运行并拥有自己的堆等。但是,当我们将其设为单独的应用程序时必须存在一些差异,因为它将拥有自己的应用程序沙箱。根据场景,我发现了许多使用它们的示例和首选方法,但我试图了解它的内部技术细节。

这方面有什么好的信息来源吗?

编辑:如果服务和客户端进程在同一个应用程序中运行,将对应用程序对象/上下文产生什么影响。它会被其中一个进程覆盖吗?或者每个进程会有两个应用程序对象,作为一个应用程序的一部分听起来不正确。

0 投票
4 回答
631 浏览

android - 在什么情况下,我们可以使用android服务?

我是安卓新手。我想了解 Android 服务。我的问题是如何使用 Android 服务?何时准确地用于后台意味着可以使用哪种类型的 TASK 来创建服务?任何人都可以告诉。

0 投票
2 回答
2369 浏览

android - Android iBeacon 库在活动之外的使用

我正在尝试在活动上下文之外使用 iBeacon 库来编写其有效的实现,但我缺少一些东西,因为我没有获得所需的功能。

该服务很可能似乎没有绑定到我新创建的课程......而且我不确定我在这里缺少什么......

这是我的自定义类:

我在我的应用程序类中实例化信标管理器:

我在onCreate()andonDestroy()方法中的活动中绑定了这个经理。

我错过了什么?

我在这样的活动中实例化我的自定义类:

装订部分:

0 投票
2 回答
305 浏览

android - 处理远程服务器断开连接的正确方法是什么?

几乎所有使用远程服务的示例都包含此类代码(此代码取自 Google IabHelper)

为什么字段 mService 总是设置为 null?忽略 onServiceConnected 回调是错误的吗?根据我的经验,重新连接通常会在 1-2 秒后发生。尽管该字段被广泛使用,谷歌 IABHelper 甚至不检查 mService 是否为空,甚至是几种异步方法。在断开连接的情况下,我的许多用户都会获得 NPE。我想修补 IabHelper。问题是如何..

在异步方法中使用字段 mService 时,处理断开连接的正确方法是什么?只需忽略 onServiceDisconnected 并获取 RemoteExceptions?我考虑过等待通知方法,但不能保证会发生重新连接。欢迎任何想法。