如何使用API 从Flutter插件启动活动

问题描述 投票:0回答:1

所以我正在制作Flutter插件,并且试图在Android上运行Kotlin代码。问题是,此代码运行一种方法,该方法尝试在没有意图上的FLAG_ACTIVITY_NEW_TASK标志的情况下启动活动。问题是它在尝试实例化方法本身内部的实例时也没有办法给它一个intent instance。该方法希望从存储在UI上并从中调用的按钮或其他方法调用。但是,由于从Flutter插件中的onMethodCall方法调用了它,因此它似乎不起作用。我尝试了许多解决方法,例如在Activity中添加方法,并在从flutter插件类中调用它时在其中运行代码。我也尝试过使用UIThread,也没有运气。任何解决方法?

注意:由于未隐藏此API,因此我未提供任何代码。应该只知道我正在从onMethodCall事件中运行代码。

错误:Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

android flutter kotlin flutter-plugin
1个回答
0
投票

正如您提到的,对于Flutter插件,任何与平台相关的逻辑都应保留在FlutterActivity的子类中,该子类用于显示本机模块内部的flutter模块/屏幕。现在,您可以从该子类启动intent,而无需任何其他标志。

@@ note-FlutterActvity的子类应保留在本机模块中。

class FlutterResponseActivity : FlutterActivity() {
    private var methodResult: Result? = null
    override fun provideFlutterEngine(context: Context): FlutterEngine? {
        return MyApplication.mContext.flutterEngine //Pre-warmed flutter engine
    }
    private fun startNewActivity() {
         val intent = Intent(this, MainActivity::class.java)
        startActivity(intent)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.