我正在尝试使用Kotlin从另一个(Android)活动中完成活动。 我知道使用Java完成它的方法是使用以下代码(https://dev59.com/4mkv5IYBdhLWcg3wvDXq#10379275)
在第一个活动中:
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)
错误:http://i.imgur.com/qaQ2YHv.png
修复:所示代码是正确的,您只需要将其放置在onCreate函数内即可。