3
我正在製作一款應用程序,它需要一個始終運行的服務,即使應用程序已關閉,從設備啓動到設備關閉。這可以在android中完成嗎?如何在Android設備啓動時啓動服務?
我正在製作一款應用程序,它需要一個始終運行的服務,即使應用程序已關閉,從設備啓動到設備關閉。這可以在android中完成嗎?如何在Android設備啓動時啓動服務?
首先,你需要許可
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
然後在你的清單創建一個廣播接收機
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class Startup extends BroadcastReceiver {
public Startup() {
}
@Override
public void onReceive(Context context, Intent intent) {
// start your service here
context.startService(new Intent(context, SERVICE.class));
}
}
註冊這個廣播接收器作爲
<receiver android:name="YOUR_PACKAGE.Startup" >
<!-- This intent filter receives the boot completed event -->
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
注:也不能保證從設備啓動運行設備 服務關閉,在極端情況下,Android系統可能會殺死服務 還可得到額外的內存。
對於應用用戶來說,服務始終保持活躍狀態非常重要。有沒有辦法確保android不會殺死該服務,除非它在極端負載下? –
使用一個'IntentService'服務,如果服務在處理意圖時被終止,服務將被重新啓動,我還沒有想出其他方法。 –
@twntee不同意。 IntentService應該在運行一次後停止,所以它不會一直運行。 –