MyApp() class 中定义的访问函数 - Flutter

Access function defined in MyApp() class - Flutter

我想从另一个 class 访问我的顶级 class 中定义的函数。我该怎么做?

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}


class MyApp extends StatefulWidget {

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> 
{
  
  void startListeningNotifications()
  {
    //start listening to fcm messages
  }


  void initState()
  {
    super.initState();
    
    startListeningNotifications(); 
  }  
}

我想从另一个 class 调用此函数 startListeningNotifications()。这可能吗?

我已经在 initState() 中调用了这个函数,但在某些情况下我需要从其他 class 中调用它。例如,如果用户尚未注册您的 Firebase 应用程序,那么在注册过程之后,我需要访问此方法才能开始收听 fcm 通知。

您可以在不同的文件中定义 startListeningNotifications(),将其导入您需要的任何页面并在那里调用它。

// create lib/_utils/fcm_utils.dart
void startListeningNotifications() {
  // your function
}
...



// main.dart or any page you want to call your functions from
// TODO: replace yourAppName below with your app name
import 'package:yourAppName/_utils/fcm_utils.dart';
...
void initState() {
  super.initState();

  startListeningNotifications(); 
}