java - 使用 Kotlin 从另一个完成 android Activity

标签 java android kotlin

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

在第一个 Activity 中:

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"));

关于其他 Activity :

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

出于某种原因,将 java Activity 转换为 kotlin 不会提供有效输出,如果有人能给我正确的语法以使用 kotlin 正确地完成它,我将不胜感激

kotlin 输出(第一个 Activity )[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 输出(第二个 Activity )[OK]

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

错误:http://i.imgur.com/qaQ2YHv.png

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

最佳答案

完成另一个特定 Activity 的简单代码:

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)
  }
}

现在从另一个 Activity 调用 SplashActivity.MyClass.activity?.finish() 以完成上述 Activity 。

关于java - 使用 Kotlin 从另一个完成 android Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44781054/

相关文章:

Java 使用 obj.threadobj.join 抛出错误

android - 引入ConstraintLayout之后再有RelativeLayout有什么好处?

java - 如何在多模块android项目(kotlin + java)上配置SonarQube(使用jacoco)?

android - 协程CancellationException预期行为

java - 为什么我的 @BeforeClass 方法在执行子类测试方法时不运行?

java - 服务器在 nio 中不接受多个客户端

java - 在 64 位 JVM 中加载 32 位 .so 库

android - 如何获取所有已连接网络的 BSSID?

android - 你如何注释掉 Proguard.cfg 中的规则?

optimization - Kotlin - 如果不为空,则使用修改后的 Obj Prop 覆盖 Obj Prop