PeriodicTask.Builder() для Service в Xamarin.Forms

198
10 апреля 2018, 03:03

Добрый день, ищу помощи при создании службы которая работает с переодичностью (обновляет данные из интернета) в Xamarin.Forms, служба не запускается т.к. выдает, что gsm зарегистрирована. Прощу указать где ошибка

мое мнение, я не правильно указываю Tag, однако проблема что я не могу понять какой TAG нужно указать

имя пакета в свойствах Android.Manifest

my.companyname.App

Service.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
namespace App.Droid.Services
{
[Service(Exported = true, Permission = "com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE", Enabled = true)]
class Service : Service
{
    public override IBinder OnBind(Intent intent)
    {
        return null;
    }
    [return: GeneratedEnum]
    public override StartCommandResult OnStartCommand(Intent intent, [GeneratedEnum] StartCommandFlags flags, int startId)
    {
        Toast.MakeText(ApplicationContext, "Test", ToastLength.Long).Show();
        return StartCommandResult.NotSticky;
    }

    public override void OnCreate()
    {
        base.OnCreate();
    }
}
}

MainActivity.cs

using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Content;
using App.Droid.Services;
using Android.Gms.Gcm;
using Android.App.Job;
namespace App.Droid
{
[Activity(Label = "App", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;
        base.OnCreate(bundle);
        StartBackgroundDataRefreshService();
        global::Xamarin.Forms.Forms.Init(this, bundle);
        LoadApplication(new App());
    }
    private void StartBackgroundDataRefreshService()
    {
        var ident = new Intent(this, typeof(Service));
        var pt = new PeriodicTask.Builder()
            .SetPeriod(5) 
            .SetService(Java.Lang.Class.FromType(typeof(Service)))
            .SetRequiredNetwork(0)
            .SetTag("TASK_TAG_PERIODIC")
            .Build();
        GcmNetworkManager.GetInstance(this).Schedule(pt);
    }
}
}
READ ALSO
MongoDB принимает за _id свойство Id

MongoDB принимает за _id свойство Id

Как указать MongoDB, что Id это не _id в данном классе

185
Обязательно ли нужен Data Tools для создания SQL CLR функции?

Обязательно ли нужен Data Tools для создания SQL CLR функции?

Обязательно ли нужен SQL Data Tools, что бы была возможность создавать SQL CLR функции?

202
Добавить элемент N раз в Linq

Добавить элемент N раз в Linq

На форму заказа (Order) нужно добавить пять позиций (OrderPosition), делаю это в цикле:

213
Перестает работать Button в DataTemplate

Перестает работать Button в DataTemplate

Дано DataTemplate, в котором определена кнопка:

214