val intent = Intent(context, MainActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOIntent.FLAG_ACTIVITY_NEW_TASK
intent.putBooleanExtra(MainActivity.FINISH, true)
finish()
将FINISH声明为
val FINISH = "finish_key_extra"
并在创建MainActivity时添加此代码
super.onCreate(state)
boolean finish = getIntent().getBooleanExtra(FINISH, false) //default false if not set by argument
if(finish) {
finish();
return;
}
因为您使用CLEAR_TOP和NEW_TASK,所以堆栈上只有一个活动,所以您通过发送参数来完成它。
我提到的另一个解决方案是用
startActivityForResult(intent, REQUEST_CODE_X)
void onActivityResult(int requestCode, int resultCode, Bundle result) {
if(requestCode == AppIntents.REQUEST_CODE_X)
if(resultCode == FINISH_APP){
setResult(FINISH_APP);
finish();
}
}
在任何时候,您都要开始关闭您调用的应用程序:
setResult(FINISH_APP);
finish();
注意:我是Java开发人员,不是kotlin