我应该如何告诉我的应用需要外部重建?

时间:2018-03-14 06:11:53

标签: flutter

我希望我的应用获得一个意图,并取决于在应用中显示内容的意图。

通常,当一个小部件依赖于状态时,你将它放在一个状态并运行setState()。

问题在于,当我尝试以不同的意图启动我的颤动应用程序时,我得到I/FlutterActivityDelegate( 4472): onResume setting current activity to this。在某种程度上它是有道理的 - 我不会在我的小部件需要重新绘制的 flutter 代码中的任何地方说 - 因为我通过Java获得了我的意图。

另一方面,应该有一种方法告诉颤动按意图重绘我的小部件?或者我还应该做些什么呢?

1 个答案:

答案 0 :(得分:3)

专门为了获得有关onResume事件的通知,您可以使用WidgetsBindingObserver。实现其didChangeAppLifecycleState方法并通过执行您希望UI执行的任何操作来响应AppLifecycleState.resumed,例如调用setState以触发重建。也就是说,需要对UI进行有效的更改才能重新绘制。在实际的UI更改中,简单地调用没有有效状态更改的setState可能不会(实际上,不应该)。

通常,您可以使用BasicMessageChannel从Java(或Objective-C / Swift)向Flutter发送消息,并让您的应用对消息作出反应(例如,呼叫setState或安排帧)。