为了账号安全,请及时绑定邮箱和手机立即绑定

如何更新数据库?

如何更新数据库?

C#
繁星点点滴滴 2021-05-18 01:17:36
我有一个接受推送通知的应用程序。我必须将推送通知写入数据库。问题在于,在数据库中,它仅写入最后一条消息(在我重新进入应用程序之后),并且何时将应用程序置于后台,何时将其置于前台。当有新数据到达时,如何做才能使数据库保持最新状态?我接受推送,然后将其数据写入变量      [Service]   [IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]    public class MyFirebaseMessagingService : FirebaseMessagingService    {        const string TAG = "MyFirebaseMsgService";        public override void HandleIntent(Intent intent)        {            try            {                if (intent.Extras != null)                {                    var builder = new RemoteMessage.Builder("MyFirebaseMessagingService");                    foreach (string key in intent.Extras.KeySet())                    {                        builder.AddData(key, intent.Extras.Get(key).ToString());                    }                    this.OnMessageReceived(builder.Build());                }                else                {                    base.HandleIntent(intent);                }            }            catch (Exception)            {                base.HandleIntent(intent);            }        }        public override void OnMessageReceived(RemoteMessage message)        {            Log.Debug(TAG, "From: " + message.From);            Log.Debug(TAG, "Notification Message Body: " + message.GetNotification().Body);            SendNotification(message.GetNotification().Body, message.Data, message.GetNotification().Title);           // Here I write the push - notification data into variables            X.Instance.title = message.GetNotification().Title;            X.Instance.body = message.GetNotification().Body;        }        private void OnStartCommand()        {            throw new NotImplementedException();        }        public class X        {            public static X Instance = new X();            public  string title;            public string body;        }   
查看完整描述

1 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

从您的代码看来,您似乎在onCreate中创建数据库实例,并在相同的onCreate方法中输入数据。我看不到您的数据库的实现方式或类型,但是我建议您在OnMessageReceived处理程序的Db中输入通知,每次收到新通知时都会调用它,而不是在onCreate中,因为由于某些设备配置(例如方向更改)而很少调用onCreate。


查看完整回答
反对 回复 2021-05-23
  • 1 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信