安卓前台服务始终停止

时间:2019-04-16 13:39:33

标签: android android-service foreground-service

我有一个Android应用程序,它有一个前台服务。服务使用某些api的数据。此过程可能需要几分钟和几个小时。服务运行时,它将日志连同执行进度和其他信息写入logcat。但是,每次我运行我的应用程序(和服务)后,它都会停止工作。我想OS会由于其原因而杀死它,但我不能理解为什么以及如何避免它。我看着logcat,发现了一些可疑的记录:

04-16 16:24:41.180 28045 28058 I MyCoolApplication: Background concurrent copying GC freed 90524(3MB) AllocSpace objects, 70(1400KB) LOS objects, 50% free, 7MB/14MB, paused 811us total 109.136ms
04-16 16:24:51.497 28045 28045 I MyCoolApplication: Explicit concurrent copying GC freed 87516(4MB) AllocSpace objects, 30(600KB) LOS objects, 49% free, 4MB/9MB, paused 303us total 51.352ms

MyCoolApplication是我应用的名称。这些记录会在应用程序运行时显示,并在其死后继续显示。可能是什么以及如何解决此问题?

UPD:

这是我的服务(C#代码,我使用Xamarin)

class MyApiService : BackgroundService
{
    public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
    {
        base.OnStartCommand(intent, flags, startId);
        var notification = CreateNotification();
        StartForeground(100, notification);            
        ConsumeDataFromApi(); 
        StopSelf(startId);

        return StartCommandResult.Sticky;
    }

    private Notification CreateNotification() 
    {
        // some code here 
    }

    private void ConsumeDataFromApi(DateTime start, DateTime end) 
    {
         // some long-running method consuming and performing data from json api
    }
}

0 个答案:

没有答案