【发布时间】:2019-10-31 01:06:27
【问题描述】:
我为我的应用程序编写了不同的风格,并且我想为其中一个运行服务。
我该如何实现它?
【问题讨论】:
-
你检查过this吗?
标签: android
我为我的应用程序编写了不同的风格,并且我想为其中一个运行服务。
我该如何实现它?
【问题讨论】:
标签: android
解决方案 1
if("debug".equals(BuildConfig.FLAVOR) {
// Start service A
} else if ("release".equals(BuildConfig.FLAVOR) {
// Start service B
}
或者
if("debug".equals(BuildConfig.FLAVOR) {
// Start service A onfly if using "debug" flavor
}
解决方案 2
您还可以使用上述方法中止特定口味的服务:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if("debug".equals(BuildConfig.FLAVOR) {
stopSelf();
}
....
}
解决方案 3
此外,您可以针对不同的口味使用不同的AndroidManifest.xml:
基础 AndroidManifest.xml
编辑文件:app/src/main/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application>
...
<service android:name="com.test.Service" />
</application>
</manifest>
风格特定的 AndroidManifest.xml
在 app/src/FLAVOR_A/AndroidManifest.xml 编辑/创建文件
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application>
...
<service android:name="com.test.Service" android:enabled="true" tools:node="merge"/>
</application>
</manifest>
这只会将标志 android:enabled="true" 添加到 FLAVOR_A。
您可以找到有关合并清单文件here的更多信息
【讨论】: