我正在从应用程序1调用startActivityForResult方法以从应用程序2获取结果,但应用程序2上的setResult方法未返回任何内容。
App 1中的代码
val intent=packageManager.getLaunchIntentForPackage("com.example.colorpicker")
if (intent!=null){
intent.action
val bundle=Bundle()
bundle.putString("sendColor","")
intent.putExtras(bundle
intent.setFlags(0)
startActivityForResult(intent,2)
}
应用2中的代码
val intent=Intent()
val returnBundel=Bundle()
returnBundel.putInt("red", redText.text.toString().toInt()).
returnBundel.putInt("green",
greenText.text.toString().toInt())
returnBundel.putInt("blue",
blueText.text.toString().toInt())
intent.putExtras(returnBundel)
intent.setFlags(0)
this.setResult(Activity.RESULT_OK,intent)
this.finish()
我以前遇到过这个问题,解决方案是在设置结果后不要立即调用finish。
尝试此代码段:
setResult(Activity.RESULT_OK, resultIntent);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
finish();
}
}, 100);