我正在尝试使用以下代码运行服务:
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>
此外,我的应用程序没有崩溃,只是服务没有启动(未创建)。
答案 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