Android 如何在Kotlin中调用另一个活动的方法?

Android 如何在Kotlin中调用另一个活动的方法?,android,kotlin,Android,Kotlin,我有一个活动,通过BLE接收数据并显示它(ControlActivity)。 还有第二个活动,我希望以不同的方式显示接收到的数据(OnlineActivity) 在ControlActivity中,当通过BLE接收数据时,会调用get方法: private fun onNotificationReceived(bytes: ByteArray){ if(bytes[0] == 0x01){ //handle with ControlActivity } e

我有一个活动,通过BLE接收数据并显示它(ControlActivity)。 还有第二个活动,我希望以不同的方式显示接收到的数据(OnlineActivity)

在ControlActivity中,当通过BLE接收数据时,会调用get方法:

private fun onNotificationReceived(bytes: ByteArray){
    if(bytes[0] == 0x01){
        //handle with ControlActivity
    }
    else if(bytes[0] == 0x02){
        //handle with OnlineActivity
        //startedinstanceofOnlineActivity?.handleData(bytes)
    }
}
数据每隔一秒就会定期出现

ControlActivity中有一个按钮,可以启动Online活动:

control_online.setOnClickListener {
    val intent = Intent(this,OnlineActivity::class.java)
    startActivity(intent)
}
要从ControlActivity调用OnlineActivity方法,我需要在此创建/启动的OnlineActivity实例。 OnlineActivity中的方法应根据ControlActivity中的数据更改OnlineActivity中的一些文本视图

当OnlineActivity处于活动状态时,onNotificationReceived也会连续调用

我只是需要一个“快速而肮脏”的解决方案来解决我的问题,因为这只是我自己的一个非常基本的测试应用程序。我不想花太多时间在tabview上,等等。。
我只是一个嵌入式软件工程师,希望以任何方式显示他接收到的数据,以供测试之用。我以前从未开发过应用程序。

为了快速解决问题,您可以为在
ControlActivity的
onNotificationReceived
中收到的数据声明一个静态变量

为了包装静态变量,您将在伴生对象中定义这些变量


你可以在你的OnlineActivity中通过类名获得数据,比如
ControlActivity.foo
(其中
foo
是ControlActivity中的静态变量)

谢谢你,这真的帮助了我!我完全忘记了static关键字,因为它在非OOP中有点不同。这可能会导致泄漏。如果需要,可以使用singleton类be@Raghunandan我确实是这样做的。我添加了一个名为
MessageHandler
的类
ControlActivity
在伴随对象中有一个实例
OnlineActivity
通过
ControlActivity.msghdl
获取该实例。