问题描述
是否有一种方法可以通过后台服务从暂停或处于非活动状态的生命周期状态自动恢复Flutter应用程序?
类似于WhatsApp应用在暂停或不活动时收到呼叫的时间。
解决方法
不,您不能简单地从服务中唤醒应用程序。这将为各种垃圾邮件应用程序和安全风险敞开大门。您需要使用CallKit或Android上的SIP之类的方式专门将其注册为VOIP应用,以接收来电。
对于其他事情,您可以使用推送通知,但不会启动您的应用程序。用户始终必须单击您显示的通知。
,您需要同时使用以下几项:
- 使用推送通知唤醒您的应用程序:
https://pub.dev/packages/firebase_messaging
要使用推送通知启动您的应用,请参阅以下文章:
https://stackoverflow.com/a/48405551/4335775
- 使用CallKit(IOS)或ConnectionServices(Android)显示即将到来的呼叫屏幕。到今天为止,只有少数软件包可以处理这些事情,以下是一个可以同时处理两个平台的软件包:
https://pub.dev/packages/flutter_callkeep
如果您想要完全不同的事情并且需要运行一些后台进程,那么首先应该了解很多事情。
我建议从这里开始:https://flutter.dev/docs/development/packages-and-plugins/background-processes
这是一个有用的程序包,用于应不断运行的后台进程:
https://pub.dev/packages/background_fetch
只能使用显式命令唤醒该应用。用户必须按下按钮。并且有处理输入的方法,消息可能会传递参数,您可以将以前的状态保存在数据库中或共享首选项,等等。