2014-09-23 73 views
1

我創建了一個應該在後臺繼續工作的應用程序。這似乎在一段時間內工作正常,但如果我長時間不使用手機,我發現它已停止工作,打開後又重新啓動。讓Android應用程序在後臺運行,防止它停止/死亡

我所有的搜索都會讓我知道如何讓我的應用程序在後臺運行,這樣做很好(我基本上只是從Xamarin教程中拉出整個部分),但由於某種原因,它只是決定停止一次。

有什麼辦法來強制/確保應用程序將繼續在後臺運行?

+0

Google「前臺服務」。 – 323go 2014-09-23 05:19:00

+0

這是Xamarin中的常見問題;我與之交互的一些公司遇到了類似的問題。你如何執行你的後臺任務?如果它不在服務中,Android很可能會終止您的活動(即使它有一個後臺.NET線程),然後用它取出Mono運行時。 – matthewrdev 2014-09-23 06:06:12

+0

此外,這是發生在版本或調試版本?調試版本以靜默方式將Mono.Android.DebugRuntime安裝到您的設備上,並將其作爲服務激活,而發佈版本則不會。 – matthewrdev 2014-09-23 06:21:32

回答

0

用戶服務和執行所需的任務,即使應用程序從後臺關閉,服務仍在後臺運行。

1

如果你希望你的應用程序保持執行計算在後臺,你應該選擇一個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

相關問題