我使用该服务每30秒发送一次通知。当我的应用程序处于后台模式时,它工作正常。每个通知都会正确收到但是当我杀死/关闭我的应用程序时,服务停止,我没有收到任何通知。
当应用程序关闭或被杀时,有人知道如何运行服务吗?
这是我的清单文件` ``
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name=".MainService"
android:enabled="true"
android:exported="false"
>
</service>
<service android:name=".NewService" >
</service>
<activity
android:name=".MainActivity2"
android:label="@string/title_activity_main_activity2" >
</activity>
</application>
`
答案 0 :(得分:0)
如果您想要在从最近应用的列表中删除应用程序后继续提供服务,请在清单中将stopWithTask
设置为false
:
<service
android:enabled="true"
android:name=".MyService"
android:exported="false"
android:stopWithTask="false" />
您的服务应该是粘性的。
@Override
public final int onStartCommand(Intent intent, int flags, int startId) {
Log.i(TAG, "onStarCommand(): Received id " + startId + ": " + intent);
return START_STICKY; // run until explicitly stopped.
}
有关所有详细信息,请参阅this问题。
如果您希望在从最近列表中删除应用程序时执行一些其他操作,则可以覆盖方法onTaskRemoved
希望这有帮助。