首页 > 解决方案 > 作业服务导致 Android Xamarin 中的解析器错误

问题描述

我需要在后台下载一些我使用工作服务的文件。当我尝试在 android 设备 7.0 版中部署应用程序时,出现错误提示“解析包时出现问题”。这是我的代码

public class RegisterJobService:Activity
{
    public static void SchelduleJob(Context context)
    {
        try
        {
            long REFRESH_INTERVAL = 90 * 1000;
            JobInfo.Builder builder;
            JobInfo jobInfo;

            Java.Lang.Class javaClass = Java.Lang.Class.FromType(typeof(BackgroundAgentService));
            ComponentName component = new ComponentName(context, javaClass);
            builder = new JobInfo.Builder(0, component).SetPeriodic(REFRESH_INTERVAL);

            jobInfo = builder.Build();
            JobScheduler jobScheduler = (JobScheduler)context.GetSystemService(JobSchedulerService);
            jobScheduler.Schedule(builder.Build());

        }
        catch (System.Exception ex)
        {
        }
    }
}

//后台作业服务代码

[Service(Name = "SampleTestApp.Helper.BackgroundAgent", Permission =
 "android.permission.BIND_JOB_SERVICE")]
public class BackgroundAgentService : JobService
{
    public override bool OnStartJob(JobParameters @params)
    {
        Log.Debug("BATest", "BackgroundAgentService-2/---------OnStartJob////clas");
        return true;
    }

    public override bool OnStopJob(JobParameters @params)
    {
        //throw new NotImplementedException();
        Log.Debug("BATest", "BackgroundAgentService/////++++++++++++OnStopJob/////2/////clas");
        return true;
    }
}

我发现当我删除以下代码时,没有解析器错误,但“SchhelduleJob”方法出现异常,提示“Java.Lang.IllegalArgumentException:没有此类服务 ComponentInfo”。

[服务(名称=“SampleTestApp.Helper.BackgroundAgent”,权限=“android.permission.BIND_JOB_SERVICE”)]

我还尝试在无效的清单文件中添加权限。

<application >
		<service android:Name="SampleTestApp.Helper.BackgroundAgentService" android:enabled="true" android:permission="android.permission.BIND_JOB_SERVICE" android:exported="true" />
	</application>

请问有人对此有什么想法吗?

标签: xamarinxamarin.formsbackgroundjobservice

解决方案


推荐阅读