Android 如何启动特定口味的服务?
我为我的应用程序编写了不同的风格,我有一个服务,我只想为其中一个运行Android 如何启动特定口味的服务?,android,Android,我为我的应用程序编写了不同的风格,我有一个服务,我只想为其中一个运行 如何实现它?解决方案1 if("debug".equals(BuildConfig.FLAVOR) { // Start service A } else if ("release".equals(BuildConfig.FLAVOR) { // Start service B } 或 解决方案2 您还可以使用上述方法中止特定口味的服务: @Override public int onStartCommand
如何实现它?解决方案1
if("debug".equals(BuildConfig.FLAVOR) {
// Start service A
} else if ("release".equals(BuildConfig.FLAVOR) {
// Start service B
}
或
解决方案2
您还可以使用上述方法中止特定口味的服务:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if("debug".equals(BuildConfig.FLAVOR) {
stopSelf();
}
....
}
解决方案3
此外,对于不同的口味,您可以使用不同的AndroidManifest.xml
:
Base AndroidManifest.xml
在以下位置编辑文件:app/src/main/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application>
...
<service android:name="com.test.Service" />
</application>
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application>
...
<service android:name="com.test.Service" android:enabled="true" tools:node="merge"/>
</application>
</manifest>
您检查过了吗?当我在清单中定义服务时,服务从应用程序启动开始,并不关心此代码。您能分享一下您是如何启动服务的吗?我不确定,但只是将其添加到清单并不意味着它会自动启动…但我不确定。在任何情况下,您都可以在服务中使用上述代码。然后,如果使用了错误的味道,服务将自行完成,但我不确定——确实如此。服务不会自动启动
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application>
...
<service android:name="com.test.Service" android:enabled="true" tools:node="merge"/>
</application>
</manifest>