我想测试当应用程序处于终止状态时收到的FCM消息。问题是Android Studio在我杀死应用程序后失去连接。我如何在启动时连接回Android Studio调试器?
我发现这个旧线程如何调试应用程序时,它's被杀,但不知道我们是否有这样的功能在扑动?
android.os.Debug.waitForDebugger();
我需要能够看到记录器输出在应用程序中发生了什么。
我建议您使用ADB。只要在shell中输入这个命令,你就会收到你的应用程序的实时日志(即使它处于终止状态)。
adb logcat --pid=$(adb shell pidof -s your.package.name)
这不是真正的调试,但在Android设备的情况下,你可以在处理FCM通知的代码中添加print
语句,并在发布模式下从终端运行应用程序以进行测试。这不能在iOS上工作,至少我不能使它工作。
添加如下示例:
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
@pragma('vm:entry-point')
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) {
print('onBackgroundMessage');
}
在FCM初始化之后的某个地方,使用这个来获取初始消息(当应用程序被终止并导致应用程序启动时,用户点击的消息):
final initialMessage =
await FirebaseMessaging.instance.getInitialMessage();
if (initialMessage != null) {
print('initialMessage');
}
把你的手机连接到你的电脑上,从终端启动你的应用程序:
flutter run --release
现在你可以终止应用程序。注意,终端中的会话仍然是开启的。
检查以下场景:
如果有一个通知,当应用程序被终止,你会看到"onBackgroundMessage"
如果用户在应用程序终止时点击消息,你会看到&;initialmessage&;