Xamarin android-应用关闭时推送通知单击删除 SQLite 数据
Posted
技术标签:
【中文标题】Xamarin android-应用关闭时推送通知单击删除 SQLite 数据【英文标题】:Xamarin android- push notification click deleting SQLite data when app closed 【发布时间】:2018-07-04 18:06:14 【问题描述】:我已在 xamarin android 应用程序中集成了 FCM 推送通知。当前台通知传递时,通知单击事件调用MainActivity
并从那里它没有接收和删除所有插入的 SQLite 记录,因为我导航到错误的页面。如何检索我的 SQLite 数据库?
谢谢你。
我的代码:
click_action 代码:
[IntentFilter(new[] "SISActivity" , Categories = new[] Intent.CategoryHome, Intent.CategoryDefault )]
public class SISActivity : AppCompatActivity
//from here need to navigation on other pages.
使用 FCM 通知发送 click_action
click_action":"SISActivity"
但是代码从MainActivity
开始执行
主要活动中用于获取已登录用户
的代码SQLiteAsyncConnection _conn;
_conn = DatabaseAccess.GetConnection();
//if table already created sqlite wont create it again
await _conn.CreateTableAsync<LoggedInUser>();
var objSisRepo = new SISRepository<LoggedInUser>(_conn);
var resultSingle = await objSisRepo.Get();
resultSingle 得到 0,即使记录可用并删除现有记录 记录。因此,我导航到登录页面而不是主页。 当应用程序在后台时,它工作正常。我在这里使用异步编程。
SQLite 连接获取方法。
public static SQLiteAsyncConnection GetConnection()
SQLiteAsyncConnection con = null;
try
var sqlDbFileName = "edTheSIS.db3";
var documentsPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
var path = System.IO.Path.Combine(documentsPath, sqlDbFileName);
var connection = new SQLiteAsyncConnection(path);
con = connection;
return connection;
catch (Exception ex)
Toast.MakeText(Application.Context, "Something went wrong", ToastLength.Short).Show();
var objLog = new LogService();
objLog.MobileLog(ex, SISConst.UserName);
return con;
【问题讨论】:
你在使用Xamarin.Forms
项目吗?
不,我正在使用 Xamarin android。谢谢
我认为我们可能需要查看一些代码来帮助您查明问题。
确定。但为此我需要将代码粘贴到同一个评论框中,或者我需要编辑问题。谢谢
嗨@York Shen 我应该在哪里发布我的代码,我是堆栈溢出的新手,不知道如何正确使用它。
【参考方案1】:
我不知道这是否是正确的答案,但接近它,并解决了我的问题。我正在使用 AsyncSQLiteConnection
,因为我已经发布了我的代码。现在我已经删除了它,只使用SQLiteConnection
它对我有用。谢谢
【讨论】:
以上是关于Xamarin android-应用关闭时推送通知单击删除 SQLite 数据的主要内容,如果未能解决你的问题,请参考以下文章
Azure 移动服务 Xamarin.Android 推送通知示例应用程序出现问题