[英]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.