Xamarin android-推送通知单击应用关闭时删除SQLite数据

时间:2018-01-25 13:15:53

标签: android sqlite firebase xamarin xamarin.android

我在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;
        }

1 个答案:

答案 0 :(得分:0)

我不知道这是否是正确答案但是接近它,并解决了我的问题。我正在使用AsyncSQLiteConnection,因为我发布了我的代码。现在我删除了它,只使用SQLiteConnection它对我有用。谢谢