我正在使用 Jetpack Compose 开发 Android 应用程序。我的应用程序将是一个提醒应用程序。由于我希望应用程序可以离线使用,因此我将数据存储在房间数据库中。但问题是我想向应用程序发送通知进行提醒,当然发送通知的时间信息保存在房间数据库中。这就是为什么我在应用程序关闭时无法发送通知的原因。你觉得我应该做什么?
即使应用程序关闭,我也想发送通知。我认为问题是我用挂起函数调用数据库中的信息,我可以将它与协程一起使用。因为协程是和 Ui 一起工作的,也就是说,不启动应用程序就无法工作。
您应该将此权限添加到您的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() 方法来代替