我創建了一個應該在後臺繼續工作的應用程序。這似乎在一段時間內工作正常,但如果我長時間不使用手機,我發現它已停止工作,打開後又重新啓動。讓Android應用程序在後臺運行,防止它停止/死亡
我所有的搜索都會讓我知道如何讓我的應用程序在後臺運行,這樣做很好(我基本上只是從Xamarin教程中拉出整個部分),但由於某種原因,它只是決定停止一次。
有什麼辦法來強制/確保應用程序將繼續在後臺運行?
我創建了一個應該在後臺繼續工作的應用程序。這似乎在一段時間內工作正常,但如果我長時間不使用手機,我發現它已停止工作,打開後又重新啓動。讓Android應用程序在後臺運行,防止它停止/死亡
我所有的搜索都會讓我知道如何讓我的應用程序在後臺運行,這樣做很好(我基本上只是從Xamarin教程中拉出整個部分),但由於某種原因,它只是決定停止一次。
有什麼辦法來強制/確保應用程序將繼續在後臺運行?
用戶服務和執行所需的任務,即使應用程序從後臺關閉,服務仍在後臺運行。
如果你希望你的應用程序保持執行計算在後臺,你應該選擇一個Service (documentation)。儘管應用程序已關閉,您仍然可以選擇構建仍在後臺運行的服務。
[Service]
public class DemoService : Service
{
public override StartCommandResult OnStartCommand (Android.Content.Intent intent, StartCommandFlags flags, int startId)
{
var t = new Thread (() => {
Log.Debug ("DemoService", "Doing work");
Thread.Sleep (5000);
Log.Debug ("DemoService", "Work complete");
StopSelf();
}
);
t.Start();
return StartCommandResult.Sticky;
}
}
如果您的意思是「在後臺繼續工作」,你的應用程序應該從正確的片段/活動,你應該檢查如何保存你的狀態重新啓動。 (documentation)
Google「前臺服務」。 – 323go 2014-09-23 05:19:00
這是Xamarin中的常見問題;我與之交互的一些公司遇到了類似的問題。你如何執行你的後臺任務?如果它不在服務中,Android很可能會終止您的活動(即使它有一個後臺.NET線程),然後用它取出Mono運行時。 – matthewrdev 2014-09-23 06:06:12
此外,這是發生在版本或調試版本?調試版本以靜默方式將Mono.Android.DebugRuntime安裝到您的設備上,並將其作爲服務激活,而發佈版本則不會。 – matthewrdev 2014-09-23 06:21:32