问题标签 [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 回答
1868 浏览

java - AOSP 添加新的自定义系统服务

我已经从 source.android.com 下载了 Android Source 构建它,并且能够在模拟器上成功运行它。

现在我想向 Android 添加新的系统服务。考虑到这是我第一次这样做,我对构建和运行 AOSP 没有太多想法。

我按照这篇简单的文章将 TestService 添加到 AOSP。添加了新代码,相应地修改了 SystemServer.java,但 make 命令并不成功。

修改后我跑了

新 current.txt 之后我跑了败并出现以下错误。

显然,错误出现在我向 SystemServer.java 添加几行以注册服务的行上。那么如何处理我添加/修改的 java 文件中的编译错误呢?我认为这是微不足道的事情,但是没有足够的 AOSP 经验来掌握这一点。任何想法/建议表示赞赏。

0 投票
1 回答
210 浏览

android - Android:Manager 和 SystemService 架构

在开发新的系统服务时,我想确保以正确的方式进行。例如,我有一个名为 MySystemManagerService 的新 SystemService。所以我必须创建一个 MySystemManager。(类似于 PackageManager 和 PackageManagerService、ActivityManager 和 ActivityManagerService)。

我想知道 Manager 和 ManagerService 组合正在完成什么,我们不能只使用 Service 来完成同样的事情。

对此的任何想法都会对我有很大帮助。

0 投票
1 回答
1413 浏览

android - 即使清除应用程序,如何保持服务运行?

有没有办法确保服务在启动后继续在后台运行,即使用户从最近屏幕清除应用程序?一个完美的例子是 Pandora 的应用程序,一旦它开始播放,即使你从最近删除它,音乐继续播放并且通知仍然存在。

在我的示例应用程序中,我有一个简单的处理程序,它只记录 500 毫秒的当前时间,以便我可以查看服务是否正在运行,然后我使用 4 个切换之一启动它,每个设置都使其从 4 个服务之一启动启动类型(START_STICKY、START_NOT_STICKY、START_REDELIVER_INTENT、START_STICKY_COMPATIBILITY)。我启动服务,退出应用程序,然后从最近删除它。在每种情况下,服务都会终止并且循环日志记录会停止。

MainActivity.java

录音服务.java

0 投票
2 回答
268 浏览

android - IBinder Android - ClassCastException : android.os.Handler&MessgerImpl

I have run into the ClassCastException when using IBinder for android within a process. Following most of the online guides, inside of my service, I have

In my client,

{

EDIT

0 投票
1 回答
204 浏览

android - Android 中从 App 到 SystemService 的通信

我实际上是在尝试在 Android 中创建一个 SystemService。我读到从应用程序到该服务的相互通信应该由处理程序处理?

那么如何将一些对象从服务的函数返回给调用应用程序呢?这怎么可能处理。

为了让我的问题更清楚,想象一下我有一个带有以下方法定义的 Service TestService:

这就是我从上面所理解的,为了同步,我们通常将 setValue 作为 handleMessage() 的一部分执行

getValue 方法可以使用 Service 实例调用该方法并像我们传统上那样正常处理它吗?还是我必须与极不可能的处理程序合作(我相信)。请让我知道在这种情况下处理的最佳过程。

谢谢

0 投票
1 回答
140 浏览

android - Android 服务:onServiceConnected() 永远不会在绑定时调用

有许多具有相同标题的问题,但它们没有帮助。所以我在问。

我有一项服务在我的第一个活动中成功启动。切换到第二个活动时,我需要bind使用服务。但onServiceConnected从未调用过。

(注意:我在一个emulator,并使用这个例子来实现绑定)

活动:

服务:

谢谢你的热心帮助。

0 投票
2 回答
1151 浏览

exception - 由于一行代码,AOSP 未加载

所以我创建了一个新服务并添加到 AOSP。从应用程序调用该服务时运行良好。但我想从框架代码(Source/frameworks/base/core/java/android/content/pm/PackageParser.java)内部调用服务的几个方法。

是否有一种特殊的方式我需要调用为服务创建实例才能在框架内使用它。

以上是我在 PackageParser.java 中为服务创建实例的方式(当我尝试从应用程序访问它时,同样工作正常)。

以下是我从 logcat 得到的错误片段:

就在此错误之前,我能够看到成功日志消息,说明我的服务已启动。

我刚刚在 PackageParser.java 中注释了一行,它为我的服务提供了实例,并且代码似乎可以创建 system.img

关于这个问题的任何意见都会对我有很大帮助。

先感谢您。

0 投票
1 回答
553 浏览

android - Android - 让应用程序以服务为重点

我有一个儿童应用程序,我想阻止他们访问电话功能。它不必坚如磐石,只需避免意外退出即可。

我使用的方法是启动一个服务来监视我的 Activity 何时失去焦点,然后重新启动它。我在这里遵循了指南:

http://nathanael.hevenet.com/android-dev-detecting-when-your-app-is-in-the-background-across-activities/

这个想法是您的活动在 onStart 中绑定到服务,并在 onStop() 期间取消绑定。当最后一个活动解除绑定时,在服务中调用 onUnbind,我从中重新启动活动。

继承人的活动:

这是服务:

这有效,但只有一次。当 GameActivity 关闭或最小化时, LockService.onUnbind 被调用。

这会重新启动 GameActivity,它会再次尝试绑定到服务。它返回 true,但 LockService.onBind 不会再次发生,因此 LockService.onUnbind 不会在 Activity 停止时发生。链接丢失。

现在,我肯定已经完成了这项工作,但我改变了一些东西并把它弄坏了。也许我重新启动活动的方式?我希望我能在它工作时将它检查到 SVN 中!

感激地收到任何帮助。

谢谢

编辑:这是我从 MenuActivity 启动服务的方式:

0 投票
1 回答
930 浏览

android - 即使在应用程序退出后运行并且可以在用户想要停止时停止的服务

我对服务很陌生

在我的应用程序中有一个 2 按钮“开始”和“停止”

如果用户按下开始按钮,那么我想启动一个即使在应用程序关闭后也可以运行的服务

当用户再次打开应用程序时,如果他按下停止按钮,那么我想停止我之前创建并运行的服务

到目前为止,我已经创建了一个服务,并且我正在从 OnStartCommand 方法返回 START_STICKY 并且即使在我关闭应用程序之后服务也会运行

但是当我再次打开应用程序并尝试按停止按钮停止时,它并没有停止,我希望它再次重新创建

如果有人知道这件事,请帮助我......

提前致谢

0 投票
1 回答
173 浏览

android - AsynTask 和服务绑定

这是一个非常愚蠢的问题,这只是因为我不喜欢我的代码向 logcat 输出错误,我才询问它。

我有一个服务叫BackgroundCollectorProcess. 它的主要工作是处理数据库中尚未报告的行。这是通过 XMPP 连接完成的。所以,在onStartCommand我有以下内容:

正如您在我大量的评论文本墙中看到的那样,我遇到了一个愚蠢的 logcat 错误。这是:

这些是异步任务:

现在,鉴于要自己运行的任务是(或可能)相当耗时,它们必须在单独的线程中运行。所以,我不能打电话unbindService(),因为线程还没有完成。

我的问题是……什么时候打电话最好unbindService?显然,我尝试在GeoLogSenderTask完成后调用它,但我仍然让 LogCat 输出这条愚蠢的消息,因为主线程将在两个异步任务之前完成。

任何帮助是极大的赞赏。谢谢。