使用 Kotlin 完成另一个 Android 活动

2023-12-03

我正在尝试使用 kotlin 完成另一个(android)的活动。我知道用java来做这件事的方法是使用以下代码(https://stackoverflow.com/a/10379275/7280257)

在第一个活动中:

BroadcastReceiver broadcast_reciever = new BroadcastReceiver() {

    @Override
    public void onReceive(Context arg0, Intent intent) {
        String action = intent.getAction();
        if (action.equals("finish_activity")) {
            finish();
            // DO WHATEVER YOU WANT.
        }
    }
};
registerReceiver(broadcast_reciever, new IntentFilter("finish_activity"));

关于其他活动:

Intent intent = new Intent("finish_activity");
sendBroadcast(intent);

由于某种原因,如果有人能给我正确的语法来正确地执行它,那么将 java 活动转换为 kotlin 不会给出有效的输出kotlin我会很感激的

kotlin 输出(第一个活动)[OK]:

val broadcast_reciever = object : BroadcastReceiver() {

    override fun onReceive(arg0: Context, intent: Intent) {
        val action = intent.action
        if (action == "finish_activity") {
            finish()
            // DO WHATEVER YOU WANT.
        }
    }
}
registerReceiver(broadcast_reciever, IntentFilter("finish_activity"))

kotlin 输出(第二个活动)[OK]

            val intent = Intent("finish_activity")
            sendBroadcast(intent)

ERROR: https://i.stack.imgur.com/OJvSY.png

修复:显示的代码是正确的,您只需将其放置在 onCreate 函数中


用于完成另一个特定活动的简单代码:

class SplashActivity : AppCompatActivity(), NavigationListner {

  class MyClass{
    companion object{
        var activity: Activity? = null
    }
  }

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    MyClass.activity = this@SplashActivity
  }


  override fun navigateFromScreen() {
    val intent = Intent(this,LoginActivity::class.java)
    startActivity(intent)
  }
}

现在打电话SplashActivity.MyClass.activity?.finish()从另一项活动完成上述活动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Kotlin 完成另一个 Android 活动 的相关文章

随机推荐