无法在Android 6.0中启动服务

时间:2016-02-12 04:58:41

标签: android android-service android-6.0-marshmallow

我正在尝试使用以下代码运行服务:

Intent i = new Intent(getApplicationContext(),MyService.class);
startService(i);

此代码适用于早于Android 6.0 Marshmallow的版本。但是在Android 6.0上,该服务永远不会被创建。 startService()正在返回null。我在同一个包中的一个Activity中调用它。我的清单就像:

    <service
        android:name="com.example.app2.MyService"
        android:label="@string/app_name">
    </service>

此外,我的应用程序没有崩溃,只是服务没有启动(未创建)。

2 个答案:

答案 0 :(得分:0)

一旦我遇到同样的问题。这是一个非常小而且愚蠢的错误。我在manifest.xml中的<service>标记之外添加了<application>标记。在<application>内部移动标签后,服务启动成功。检查服务名称中的任何拼写错误。希望能帮助到你!

答案 1 :(得分:-1)

如果您正在访问服务中的任何设备硬件功能(相机,存储,位置等)。您需要在Marshmallow设备中询问运行时权限。否则,如果编译SDK版本&gt; = 23,它将崩溃。请粘贴您的崩溃日志或服务代码以进一步说明。

请检查链接以实现该功能:

https://developer.android.com/training/permissions/index.html

https://developer.android.com/training/permissions/requesting.html