我想发送一个从房间数据库获取日期信息的数据作为通知给用户

问题描述 投票:0回答:1

我正在使用 Jetpack Compose 开发 Android 应用程序。我的应用程序将是一个提醒应用程序。由于我希望应用程序可以离线使用,因此我将数据存储在房间数据库中。但问题是我想向应用程序发送通知进行提醒,当然发送通知的时间信息保存在房间数据库中。这就是为什么我在应用程序关闭时无法发送通知的原因。你觉得我应该做什么?

即使应用程序关闭,我也想发送通知。我认为问题是我用挂起函数调用数据库中的信息,我可以将它与协程一起使用。因为协程是和 Ui 一起工作的,也就是说,不启动应用程序就无法工作。

android-jetpack-compose android-room android-notifications android-alarms
1个回答
0
投票

您应该将此权限添加到您的manifest.xml中

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

并在应用程序标签中:

<receiver
        android:name="AutoStart"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
</receiver>

这是 AutoStart 类

public class AutoStart extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    Intent intentService = new Intent(context, Service.class);
    context.startForegroundService(intentService);
}

}

此配置使您的应用程序在设备打开时自动启动。然后记录您的服务以确保您的应用程序服务正常启动。当活动不像共享首选项那样运行时,某些功能使用上下文不起作用。你应该使用 getApplicationContext() 方法来代替

© www.soinside.com 2019 - 2024. All rights reserved.