フォーム私はアンドロイドでバックグラウンドサービスを持っているとして実装されている:私のログインページにXamarinフォームでバックグラウンドサービスが
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
UserDialogs.Init(() => (Activity)Forms.Context);
LoadApplication(new App());
StartService(new Intent(this, typeof(PeriodicService)));
}
}
:MainActivityクラスで
[Service]
public class PeriodicService : Service
{
public override IBinder OnBind(Intent intent)
{
return null;
}
public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
{
base.OnStartCommand(intent, flags, startId);
// From shared code or in your PCL]
Task.Run(() => {
MessagingCenter.Send<string>(this.Class.Name, "SendNoti");
});
return StartCommandResult.Sticky;
}
}
public LoginPage()
{
InitializeComponent();
int i = 0;
MessagingCenter.Subscribe<string>(this, "SendNoti", (e) =>
{
Device.BeginInvokeOnMainThread(() =>
{
i++;
CrossLocalNotifications.Current.Show("Some Text", "This is notification!");
}
});
});
}
ここでの主な問題は、私の定期的なサービスが初めて以外のメッセージを送信していないことです。通知は一度だけ表示されます。助けてください。
あなたをあなたのサービスで 'MessagingCenter.Send' ** once **を呼び出すだけです... – SushiHangover
@SushiHangoverあなたの答えをありがとう。だから、どのようにn時間ごとにその通知を送ることができますか? – Subash
AlarmManager/SetRepeatingによる繰り返しアラームを使用すると、再発事象のスケジュールを立てることができます。https://stackoverflow.com/a/45657600/4984832 – SushiHangover