如何调用startActivityForResult方法从另一个应用程序获取结果

问题描述 投票:0回答:1

我正在从应用程序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()
android kotlin android-intent intentfilter
1个回答
0
投票

我以前遇到过这个问题,解决方案是在设置结果后不要立即调用finish。

尝试此代码段:

    setResult(Activity.RESULT_OK, resultIntent);

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            finish();
        }
    }, 100);
© www.soinside.com 2019 - 2024. All rights reserved.