Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android Kotlin中获取以前的活动_Android_Kotlin - Fatal编程技术网

如何在android Kotlin中获取以前的活动

如何在android Kotlin中获取以前的活动,android,kotlin,Android,Kotlin,假设我的默认活动是MainActivity,我在MainActivity中不使用finish启动另一个活动DepositActivity 现在,如何访问DepositActivity中的MainActivity实例 现在,我如何访问DepositActivity中的MainActivity实例 无法在其他活动中访问一个活动实例的AIK 如果您有这种类型的需求,请尝试使用 现在,我如何访问DepositActivity中的MainActivity实例 无法在其他活动中访问一个活动实例的AIK 如果

假设我的默认活动是MainActivity,我在MainActivity中不使用finish启动另一个活动DepositActivity

现在,如何访问DepositActivity中的MainActivity实例

现在,我如何访问DepositActivity中的MainActivity实例

无法在其他活动中访问一个活动实例的AIK

如果您有这种类型的需求,请尝试使用

现在,我如何访问DepositActivity中的MainActivity实例

无法在其他活动中访问一个活动实例的AIK

如果您有这种类型的需求,而不是尝试使用

进行管理,则需要在MainActivity中声明为伴随对象变量和方法。静态类型的变量和方法在Kotlin中声明为伴生对象

看看下面的例子

在MainActivity中声明变量和方法

val value : String = "hello from Main"

companion object {

    lateinit var instance : MainActivity

    fun getInstancem() : MainActivity {

        return instance
    }
}
使用此实例并在存款活动中打印值,如

您可以看到日志消息

希望这能给您一些提示。

您需要在MainActivity中声明为伴随对象变量和方法。静态类型的变量和方法在Kotlin中声明为伴生对象

看看下面的例子

在MainActivity中声明变量和方法

val value : String = "hello from Main"

companion object {

    lateinit var instance : MainActivity

    fun getInstancem() : MainActivity {

        return instance
    }
}
使用此实例并在存款活动中打印值,如

您可以看到日志消息

希望这能给你提示

如果要从DepostActivity检索某些结果,请使用startActivityForResult…,DepostActivity::class.java方法。在MainActivity override onActivityResult方法中:

在DepostActivity中,您需要在完成DepostActivity之前使用方法setResult设置数据

如果要将某些数据传递给DepositorActivity,请使用intent,例如:

val intent = Intent(this, DepositActivity::class.java)
intent.putExtra("Extra_Name", /*Some Data*/)
startActivity(intent)
不推荐:使用对MainActivity的静态引用不要忘记在onDestroy方法中删除它:

在DepositActivity中,您可以如下方式访问它:

MainActivity.instance?./* call some method or property */
但您不应该依赖于onDestroy的调用,因为这样可能会导致内存泄漏

如果要从DepostActivity检索某些结果,请使用startActivityForResult…,DepostActivity::class.java方法。在MainActivity override onActivityResult方法中:

在DepostActivity中,您需要在完成DepostActivity之前使用方法setResult设置数据

如果要将某些数据传递给DepositorActivity,请使用intent,例如:

val intent = Intent(this, DepositActivity::class.java)
intent.putExtra("Extra_Name", /*Some Data*/)
startActivity(intent)
不推荐:使用对MainActivity的静态引用不要忘记在onDestroy方法中删除它:

在DepositActivity中,您可以如下方式访问它:

MainActivity.instance?./* call some method or property */
但您不应该依赖于onDestroy的调用,因为这样可能会导致内存泄漏


你能举个例子吗,为什么你想有一个活动的实例?我问的原因是,考虑到后台活动可能处于未定义状态,可能已被系统破坏,等等,这听起来像是泄漏。检查此链接->//创建了一个静态变量伴生对象{}@MarošŠeleng感谢你成为这里的理性之声。你能提供一个例子吗?你为什么希望有一个这样的活动的例子?我问的原因是,考虑到后台活动可能处于未定义状态,可能已被系统破坏,等等,这听起来像是泄漏。检查此链接->//创建了一个静态变量伴生对象{}@MarošŠeleng感谢你在这里发表理性的声音。我很高兴你用粗体字写了“不推荐”,但我的意见是你根本不应该发布它。此外,您不应该依赖于onDestroy被调用,因为,因此StaticFieldLeak lint警告您将被抑制。我很高兴您将not Recommendable放在粗体中,但我的意见是您根本不应该发布它。此外,您不应该依赖于调用onDestroy,因为这样会导致StaticFieldLeak lint警告被抑制。