问题标签 [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.
android - 为什么不能直接访问本地服务?
IBinder
据我所知,只能通过 Activity 从 Activity 访问 ServiceMessenger
或AIDL
。
为什么服务实例的方法不能被例如活动直接调用?
例如,当服务启动时,是否让服务将其实例保存在一个单例中,然后由Activity
s 访问,允许他们直接调用服务的方法?
uri - 如何在 Android 中的两个应用程序之间进行通信?
我正在开发一个键盘,所以我正在实现一个InputMethodService
. 我需要向此键盘应用程序添加其他功能,但将其作为另一个应用程序分离,以便将键盘作为单独的键盘实现。
所以我需要创建一个键盘应用程序和另一个具有所有其他功能的应用程序(其他功能包括但不限于:新闻活动、信使、锁屏实现和一些小部件)。
这两个应用程序需要在它们之间进行通信,根据我的研究,我发现可以使用几种机制:
- 有界服务
- URI 实现
- 广播接收器
我的问题是:什么是满足我需求的最佳实施方式?我的需求是将数据从一个应用程序传递到另一个应用程序,以及从另一个应用程序的一个应用程序启动活动和其他组件。
android - 允许其他应用绑定到服务,但不创建它
我有一个活动可以获取一些用户输入并将这些信息作为额外的信息放入启动(创建)服务的意图中。
然后我希望其他应用程序能够使用该服务(绑定到它)。
但是,我不希望这些应用程序能够启动服务,因为如前所述,我需要一些用户输入才能正确启动它。因此,如果一个应用程序想要使用该服务,它只能在它正在运行时绑定到它。如果不是,应用程序只能在获得用户输入后启动启动服务的 Activity。
据我了解,将清单中的 android:exported 设置为 true 允许其他应用程序既绑定又启动服务。
有什么办法可以做我需要的吗?
另一方面:服务中的 onCreate 是否有任何原因没有得到意图?我想在 onCreate 中获得额外的东西,因为我只在首次创建服务时才需要它。我目前正在通过将其放入 onStartCommand 并在第二次调用 onStartCommand 时立即返回来规避此问题,但这似乎是不必要的步骤。
android - Android Activity 服务通信
我正在实现一个具有服务和活动的 android 软件。我根据 youtube 视频做了一些代码。但是当我单击开始按钮时,运行按钮它们工作正常。但是在我重新启动服务后(按停止然后再次按启动)程序崩溃了。所以任何人都可以帮我解决这个问题。
android中还有什么方法可以在服务和活动之间进行双向通信吗?(例如:- 服务获取 GPS 位置并按 0.001 更改位置,然后 ui 自动显示编辑的位置)
请有人帮我解决这个问题。
我的代码:-
我的活动.java
我的服务.java
activity_my.xml
android - Android 服务未注册
我是安卓新手。我想构建一个在第一个活动开始时启动服务的应用程序。当我离开主要活动时,该服务希望保留。因为下一个Activity使用那个服务来做一些操作。
所以我为此写了一些代码。(但我没有为第二个活动编写流程)。当我单击下一个按钮(转到下一个活动)时,第二个活动启动并收到无响应消息。
一个日志广播说。
请有人帮助纠正这个错误。除了这种方式,我们还有什么方法可以完成上述场景。
所以我的代码如下所示
MySumService.java
包 com.example.autocomplete.app;
activity_my.xml
out2.xml
下一个.java
android - 有什么方法可以确保绑定服务吗?
根据此处显示的Android开发人员手册,似乎假设一旦客户端调用bindService(),最终将绑定服务并触发onServiceConnected()回调。
但是,在我的应用程序中,由于在调用 bindService 后未绑定服务并使用此服务对象而不进行空值检查,我收到了崩溃报告。这是一个罕见的错误,无法在我的设备上重复。虽然我可以通过添加空检查来修复这个错误,但该服务对我的应用程序来说是必不可少的,如果它没有连接,应用程序将无法正常运行。因此,我想确保在任何情况下都创建服务连接。有没有办法做到这一点?
android - Android Binder IPC addService:有没有办法再次删除服务?
我在代码中的某个地方,我只有非常有限的权限,但必须将数据发送到 android 应用程序之外。(Android系统C代码)显然我不能在那里启动一个binder服务,但我可以连接到一个已经运行的服务。因此,我的实现每秒检查服务是否可用,如果可用,它会连接并开始发送数据。这工作正常。
我的问题如下。如果我终止服务二进制/进程,客户端不知何故看不到该服务不再可用。有没有办法删除我添加的服务addService(...)
?客户做getService()
。
android - 如何在 Android 中设计同步服务
我们有一个问题,我们需要在后台定期从我们的服务器同步大量信息,并将其保存在我们的 SQLite DB 中。
我看到它的方式,我有一些 otpions,只是不太确定我完全理解所有的后果。
1) 有一个进程内服务器,START_STICK
从onStartCommand
, 和 addPeriodicSyncs (大概是 on Application#onCreate
) 返回。
2) 拥有一个进程内服务器,START_STICKY
用于将定时器任务排队并定期更新数据库。
3)Service
在自己的进程中运行并写入我们的 SQLite DB。
所以,这里有几个问题:
a) 选项 #1 和 #2 是否排除了 SyncAdapter?运行 SyncAdapter 有什么好处?(除了必须开始一个新Thread
的Service
HTTP 请求之外)
b) #1 和 #2 是否在我的应用程序被销毁后仍然存在?如果他们这样做了,他们会带回整个应用程序吗?
c) 我可以用#3 写入我的 SQLite 数据库吗?我猜是的,因为他们将使用相同的用户 ID 对吗?
d) 在#3 和主应用程序进程之间来回讨论最简单的方法是什么?广播接收器?其中大部分将通过纯粹Cursor
使用通知 URI来处理
e)只是一般的想法,优点/缺点等:)
android - 查找是否将额外内容从服务传递给当前正在运行的活动
我正在构建一个应用程序,我需要在其中了解服务的当前运行活动。我能够使用堆栈溢出中的以下代码来实现这一点:
现在我想知道是否有任何额外内容传递给当前正在运行的活动意图。另外,如果附加值被传递,我想知道值假设我有值的键?
android - 使用信使的绑定服务示例中未显示 Toast
我正在遵循使用 messenger 绑定服务的 android 指南上的示例并运行以下代码片段。我稍微修改了代码片段,使其具有一个 hi 和一个 bye 按钮,并且服务应该根据 UI 上按下的按钮显示 toast hi 或 bye。
但是在运行示例 toast 时不显示。虽然消息接收日志打印在 UI 上。
这是什么原因。onStart of Acticity 的 toast 也不会显示。