You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MAUI .NET 9 Android 15项目中PeriodicWorkRequest无法在应用关闭后执行的问题求助

MAUI .NET 9 Android 15项目中PeriodicWorkRequest无法在应用关闭后执行的问题求助

各位好,我在做MAUI .NET 9的C#项目,目标平台是Android 15(API 35)。我想实现每60分钟自动运行一次后台同步任务,要求哪怕应用被完全关闭、不在内存中也能正常触发。

查了不少资料,都说WorkManager是这类场景的推荐方案——刚好我也不需要绝对精确的定时,所以就用了Xamarin.AndroidX.Work.Runtime 2.10.2版本。为了测试方便,我先把任务间隔设成了16分钟,但现在遇到了棘手的问题:只有当应用处于前台打开状态时,任务才会正常调度执行;一旦我把应用关掉,PeriodicWorkRequest明明还在队列里,却再也不会触发执行了。

我已经折腾好几天了,试了各种调整都没用,真心求各位帮忙看看哪里出问题了,或者是不是我想实现的功能在Android 15上根本做不到?麻烦大家了!

我的WorkManager调度代码

var constraints = new AndroidX.Work.Constraints.Builder()
    .SetRequiredNetworkType(NetworkType.NotRequired)
    .SetRequiresBatteryNotLow(false)
    .SetRequiresCharging(false)
    .Build();

var workRequest = PeriodicWorkRequest.Builder
    .From<SyncWorkService>(16, Java.Util.Concurrent.TimeUnit.Minutes)
    .SetConstraints(constraints)
    .AddTag(worktag)
    .Build();

WorkManager.GetInstance(Android.App.Application.Context)
    .Enqueue(workRequest);

我的AndroidManifest配置(已经反复调整过多次,但都没效果)

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

<application android:allowBackup="true" android:icon="@mipmap/appicon" android:supportsRtl="true">
    <!--<service android:name="Wakemeapp.ForegroundService" android:enabled="true" android:exported="true" android:foregroundServiceType="dataSync" /> -->
    <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" android:exported="false" tools:node="merge" />
    
    <!-- Boot reciver-->
    <receiver android:name=".BootReceiver" android:enabled="true" android:exported="true" android:permission="RECEIVE_BOOT_COMPLETED">
        <intent-filter>
            <action android:name="BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>
</application>

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 10:33:08