相关疑难解决方法(0)

如何关闭应用程序时发送本地通知android?

我想知道当应用程序打开然后关闭时是否可以向设备发送本地通知.

它已经在我的应用程序打开时和它在后台时工作.

谢谢

编辑:我认为我不够清楚:

即使应用程序当时没有运行,我也希望在给定时间发送本地通知.

notifications android local

5
推荐指数
1
解决办法
7687
查看次数

MVVM - 在应用程序关闭时从通知开始访问 BroadcastReceiver 中的 ViewModel/SQLite

我有每隔几天发送一次的提醒通知。

该通知的发送由重复触发AlarmManager。该通知本身是建立在onReceive我的BroadcastReceiver(如描述在这里)。所以当onReceive被触发时,应用程序甚至没有打开/运行。

现在我想访问我的(本地)SQLite 数据库并获得正确的内容来构建通知,但是我如何ViewModelProvider在这个地方获得一个(代码中的 xxx)来访问我的ViewModel?

public void onReceive(Context context, Intent intent) {    

    NotificationViewModel viewModel = 
    ViewModelProviders.of(XXX).get(NotificationViewModel.class);

    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

或者问一个更好的问题,这甚至是好的做法吗?
另一种可能性是PendingIntent将触发 的所有内容填充到 中onReceive,因此我可以在收到后一一检索它。但这会更难,因为它是一个重复的警报,每次都需要不同的内容,但只触发一次。


我查看了一些搜索结果,但它们没有解决我的问题:

  • Android 上自定义视图的 MVVM 架构
    -> 对于这样一个小问题,似乎有很多代码,再加上是 Kotlin,这对我来说很难理解
  • 使用 Model View Presenter 设计模式处理 BroadcastReceivers
    -> 这里似乎有必要先在活动中设置一些东西,然后才能使用它,但我需要在没有运行我的应用程序的情况下启动此代码
  • 在 Viewmodel 中访问 BroadCastReceiver
    ->这似乎最接近我需要的,但它也需要之前的设置。我想试试这个,但我需要手动创建我的 MainActivity 来访问它的变量。这不会在没有警告的情况下在用户的设备上打开一个新活动吗?
    甚至可以在我的应用程序不在前台的情况下访问我的数据库吗?

编辑:

读取LiveData 超出 ViewModel [...],据说

如果您的应用程序的一部分不影响 UI,则您可能不需要 LiveData。

所以这意味着我应该简单地使用上下文访问我的存储库并从中获取原始数据, …

android mvvm broadcastreceiver viewmodel android-viewmodel

5
推荐指数
1
解决办法
2530
查看次数