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

时间:2015-02-12 10:10:51

标签: android service notifications

我使用该服务每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>

`

1 个答案:

答案 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

希望这有帮助。