为什么服务无法启动

问题描述 投票:-1回答:1

我开始为android开发,但遇到有关服务的问题。我对此进行了大量研究,但找不到解决方案。

我正在做一个收集RFID标签信息的应用。为此,我正在使用第三方中间件,该中间件处理与RFID读取器的蓝牙连接以及其他事件(如连接,读取,错误等)。因此,我的应用程序创建了一个广播接收器,用于处理中间件发送的所有消息和数据意图。对于这一部分,一切都很好。

问题是我试图使用下面的代码(由中间件文档提供)来启动中间件服务,但是它不起作用。

Intent intent = new Intent("com.supplier.middleware.runner");
intent.setPackage("com.supplier.middleware");
startService(intent);

我目前在Android 8.1.0上使用华硕Zenfone MAX M1(ASUS_X00HD)。该文档还描述了一种停止服务的方法(关闭应用程序时必须使用该方法),并且停止服务的意图也有效。因此,如果我手动启动中间件并尝试以编程方式关闭,则可以正常工作。

[经过数天的尝试-未成功-解决了这一问题,我使用Motorola Moto Maxx(我认为是Android 6)和Samsung J1(即Android 5.1.1)以及两款智能手机对我的应用程序进行了测试[很好:当我调用startService时,出现一个通知项;当我调用stopService时,通知项消失了。

由于Android 8,我也尝试使用“ startForegroundService”,但也没有成功。

是否可以“监视” startService调用,所以也许我可以跟踪任何错误?我是在做错什么吗?或者,我是不是在做重要的事情?

android service
1个回答
1
投票
在Android 8.0后台服务限制中。https://developer.android.com/about/versions/oreo/background.html您可以使用

JobIntentService代替意图服务。它可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.