簡體   English   中英

在啟動和 PreferenceChange 時啟動 Android 服務

[英]Starting Android Service on boot and PreferenceChange

正如我今天的代碼所示,我使用AlarmManager接收的AlarmReceiver extends BroadcastReceiver進而啟動服務。 服務進行一些更新並以stopSelf()結束。 IMO 這是定期執行任務而無需不斷運行服務的最佳方式。 正確的?

然而,這段代碼的問題是整個事件鏈都是由onSharedPreferenceChanged()啟動的。 我(最初)認為這是一個好主意,因為整個更新都是由用戶在SharedPreferences中啟用的。 我現在得出的結論是,這實際上不是很好,我需要在 onPreferenceChange 和啟動時啟動 AlarmManager/ onPreferenceChange /Service/whatever。

我做了一些搜索,但每個人似乎都想在啟動時啟動服務。 正如我所看到的,我只需要啟動AlarmManager ,然后它會啟動服務(在需要時並且僅定期啟動)。

請先幫我整理一下,然后再編碼! 提前致謝!

然后,創建並注冊一個BroadcastReceiver ,您將在其中執行AlarmManager的內容:

public class YourBootReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        // do the AlarmManager here
    }
}

然后,在您的清單上:

<application>
    ... other stuff
    <receiver android:name=".YourBootReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>
</application>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM