问题标签 [bindservice]
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 - Android 架构组件:ViewModel/Repository 与绑定到 Service/IntentService
我想为 Android 架构组件概念实现/重构应用程序,请参阅https://developer.android.com/jetpack/docs/guide
在本主题Android 架构组件 ViewModel - 与 Service/IntentService 的通信中,我找到了架构问题的非常好的答案,请参阅https://stackoverflow.com/a/46736146/6251815
但我想问一下,如何从存储库绑定服务,因为我们这里既没有上下文也没有活动。要明确这一点,问题是关于如何合并这两个概念。
我的情况如何?
我需要一个 boundService (参见https://developer.android.com/guide/components/bound-services),它来自第三方作为库(我们称之为“第三方 SDK”)。这个“第 3 方 SDK”将在蓝牙连接到某些外部硬件时执行一些异步操作,因此它作为或多或少的永久后台服务运行。但是,它实现为服务(intentservice,因此活动可以绑定),我们必须通过实现自定义事件侦听器接口来接收事件。
我想做什么?
我也想使用架构组件。我定义了 View 和 ViewModel,我想将存储库用作“Dagger2 Singleton”,它提供本地存储的数据以及 Web 服务调用,请参阅https://developer.android.com/jetpack/docs/guide#fetch -数据
我的第一个意图是,我可以将“第 3 方 SDK”也作为某种异步准远程数据源来处理,因此,存储库也应该绑定到“第 3 方 SDK”。
不幸的是,我们通常需要以下代码将后台服务绑定到活动:
其中 XXX 和 YYY 是上下文和活动(但两者都不应该出现在存储库中!)
问题是什么?
如果我想从“架构组件存储库”访问此后台服务,则必须如何根据https://developer.android.com/guide/components/bound-services修改以活动为中心的后台服务绑定的概念根据https://developer.android.com/jetpack/docs/guide#manage-dependencies实现为 dagger2 @Singleton
不幸的是,我发现这个问题的唯一半官方文件表明“应该”制作演示(但票已关闭):https ://github.com/googlesamples/android-architecture-components/issues/20
感谢任何提示如何合并这两个概念
android - 带有 bindservice 和 kotlin 的 Android Things - onResume 和 onPause 或 Coroutines 或 RxJava
在这个项目中:https ://github.com/neuberfran/SmartDrive5 ,文件:ModoComFirebase.kt我有问题 BCM18 已经被 PID 使用,因为这个 gpio 之前是在DriverService.kt文件中打开的。
我的问题是:Application 类ModoAutomatico.kt没有 onPause 和 onResume 方法。在这种情况下如何使用前台服务来解决我的问题?
android - 从 Bound Service 启动 Activity 以获得 DrawOverlays 权限但保持服务运行
我需要从我的绑定服务获得DrawOverlays 许可。我正在启动活动 -由 Android 提供,为用户打开设置活动,授予权限。Settings.ACTION_MANAGE_OVERLAY_PERMISSION
问题是一旦活动打开,android就会关闭我的服务。并且由于服务无法启动活动,因此用户需要在授予权限后重新打开绑定到服务的应用程序。
我正在尝试首先启动另一个活动(对话活动),然后让对话活动打开设置活动屏幕。尽管如此,该服务仍在关闭。
我还尝试将对话活动绑定到服务,以保持服务处于活动状态,但结果是,首先关闭,离开前一个客户端,然后启动新客户端,即对话活动。
我正在像这样从服务中打开活动。
该服务是一个绑定服务,它在函数中返回一个信使合约。onBind()
该服务是从其他应用程序使用
我需要在设置屏幕打开时保持我的服务运行,以便用户授予权限,然后成功返回服务中的上一个任务。
java - bindService 是否也调用 onCreate 方法?
我可以在不调用 startService 的情况下调用 bindService 吗?如果是这样,它是否还会在我的服务中调用我的 onCreate 方法?
java - 从片段绑定服务后如何立即调用方法?
片段中的代码
在我的片段中,我检查我的服务是否已经绑定,但是当 Main.bindMusicService(); 时我如何立即调用我的第二个方法;完成(在 onServiceConnected 被调用之后)?
现在我必须在我的歌曲开始播放之前点击 2 次。
java - 使用绑定的前台服务保持音频播放
我正在研究绑定服务、前台服务以及如何使用它们进行音频播放。
基于这个例子,我设置了一个前台服务来播放音频。在我尝试绑定服务之前,这非常适合我的用例,因为我需要在 Activity 和服务之间来回传递一些数据,例如我想要实现的搜索栏的播放位置。
我已经阅读了几篇 StackOverflow 帖子,试图找到解决方案。我知道我应该在启动它之前绑定服务,这样它就不会与它绑定的 Activity 一起被杀死。但这仍然会发生,只要我包含绑定机制。
当我让设备进入睡眠状态时,我在 logcat 中看到的唯一错误是:
所以,我需要弄清楚为什么频道被打破了,但我现在很难过还有什么地方可以看。…</p>
这是我当前的PlayActivity设置:
您可以在 GitHub 上找到完整的代码链接。
目的是让用户在收听时让他们的设备进入睡眠状态,或者让它自行进入睡眠状态。服务的绑定是必要的,以便在设备打开或活动被带到前台时显示播放进度(通过搜索栏和计数器)。
我哪里出错了或者我忽略了什么?还是有更好的方法我应该考虑?提前感谢您的任何指示和帮助。
ETA:我已经切换到未过滤的 logCat 并发现了一个新错误。我将开始粘贴保存外州且服务未绑定的位置。
“交易太大”似乎是关键,但我对什么交易感到困惑。因为我还没有在服务和活动之间进行通信。我开始怀疑timerUpdateHandler
在服务中。当设备进入睡眠状态时,我是否应该也停止通知?
android - 无法将服务绑定到片段
我有一个播放音乐的应用程序。当应用程序开始加载时,音乐开始播放。歌曲的选择是随机的。在片段中显示歌曲的名称。正在播放音乐,但无法显示歌曲名称。我究竟做错了什么?(它不是 MainActivity,它是加载屏幕)这是我的服务:
这是我的活动:
android - 在 api 30 中返回 false BindService
当我使用 compileSdkVersion 30 运行我的代码时不起作用,但在 29 代码中运行
}
在 api 30 bindService 返回 false 并且 serviceConnection 不响应侦听器
如何解决这个问题呢 ?
android - 在添加查询后从客户端应用程序调用 Android 11 远程绑定服务绑定失败
我有完全相同的问题。 在 Android 11 上,从客户端应用程序调用远程绑定服务绑定失败
我添加了查询以及@CommonsWare 的建议。即使在客户端添加查询后,bindservice 仍然返回 false。
在 Android 10 中,bindservice 工作正常,但在 Android 11 中,bindservice 返回 false。
我需要做任何额外的修改吗?
编辑:服务器端我收到以下错误:system_process W/ActivityManager: Unable to start service Intent { act=de.esolutions.abc.absservice pkg=com.app.abc } U=10: not found
android - 如何测试Android绑定服务的客户端绑定到服务的过程?
我有一个定义绑定服务的服务应用程序,以及一个其活动绑定到绑定服务的另一个客户端应用程序。如何编写测试用例来测试绑定服务流程?
客户端App绑定服务的代码与Android官方文档类似:
什么样的测试用例可以测试activity的onStart()和onStop()方法中的setIntent()&bindService()或者unbindService()方法?