我在xamarin android app中集成了FCM推送通知。当前台通知发送时,通知单击事件调用MainActivity
并且从那里它没有接收和删除所有插入的SQLite记录,因为我导航到错误的页面。如何检索我的SQLite DB?
谢谢。
我的代码:
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;
}
答案 0 :(得分:0)
我不知道这是否是正确答案但是接近它,并解决了我的问题。我正在使用AsyncSQLiteConnection
,因为我发布了我的代码。现在我删除了它,只使用SQLiteConnection
它对我有用。谢谢