【发布时间】:2017-12-14 20:23:17
【问题描述】:
我开发了一个运行后台服务的 android 应用程序,即使应用程序被用户或出于某种原因杀死,我也需要该服务保持活动状态。我已经实现了该服务并在 onStartCommand 方法中添加了 return START_STICKY,如下所示:
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
Log.d("my_state","On start command");
return START_STICKY;
}
我也像这样在 AndroidManifest.xml 中定义了服务:
<service android:name=".MeterDistanceCalcService"
android:exported="true"
android:enabled="true"
android:stopWithTask="false"
>
<intent-filter>
<action android:name="LONGRUNSERVICE" />
</intent-filter>
</service>
我注意到在旧的 android 版本上,如 android 4.4.2,它可以正常工作并且服务保持活跃,但在某些具有 android 6.0 的设备上,它不起作用。设备是华为,
-设置->应用->(我的APP)->电池
当我将此权限切换为打开时,我发现“屏幕关闭后继续运行”权限,它开始按我的意愿工作。我怎样才能向我的应用程序授予此权限或任何其他权限,这样服务就不会被杀死?
【问题讨论】:
-
我试过这个,但它对我不起作用。
-
查看答案
标签: android background-service long-running-processes