dev*_*g99 5 service notifications android
我正在使用该服务每 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>
Run Code Online (Sandbox Code Playgroud)
`
如果您想在从最近的应用程序列表中终止应用程序后继续提供服务,请stopWithTask按照false清单中的设置:
<service
android:enabled="true"
android:name=".MyService"
android:exported="false"
android:stopWithTask="false" />
Run Code Online (Sandbox Code Playgroud)
并且您的服务应该具有粘性。
@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.
}
Run Code Online (Sandbox Code Playgroud)
请参阅此问题了解所有详细信息。
如果您想在应用程序从最近列表中删除时执行一些额外的操作,您可以重写onTaskRemoved方法
希望这可以帮助。