我試圖在android中執行StartedService以定期將用戶位置發送到服務器。 直到現在,我設法創建服務並從「父」應用程序啓動它,並且我不知道如何在應用程序被終止後保持它活着。從我在互聯網上發現'StartCommandResult.Sticky'應該重新啓動服務,如果這一個被殺害,但由於某種原因,這不會重新啓動。在應用程序被終止後重新啓動Android Started Service
我overried的OnStartCommand:
public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
{
locationTask = new Task(() =>
{
//stuff to do
});
locationTask.Start();
return StartCommandResult.Sticky;
}
,服務也開始這樣的:
Intent intent = new Intent(this.Activity, Class.FromType(typeof(LocationService)));
this.Activity.StartService(intent);
任何建議,我應該怎樣才能讓我的業務還活着申請後做被殺?
由於觀察我使用xamarin來做到這一點,但我不介意在android(java)中的答案。
StartCommandResult.Sticky添加您的服務是Service.START_STICKY的xamarin相當。所以這不是我想的問題。 – 2015-02-09 09:08:55
從文檔中,你的'Service'應該無限期地運行。你確定它沒有運行嗎?你如何檢查? @AlexStefan – Marcus 2015-02-09 09:12:40
那麼我檢查服務器是否在應用程序被終止後仍然發送它的位置,事實並非如此。 – 2015-02-09 09:13:57