应用程序关闭时如何重新启动服务?

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)

`

Mys*_*icϡ 2

如果您想在从最近的应用程序列表中终止应用程序后继续提供服务,请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方法

希望这可以帮助。