【问题标题】:How to call startActivityForResult method to get result from another app如何调用 startActivityForResult 方法从另一个应用程序获取结果
【发布时间】:2020-07-17 14:56:54
【问题描述】:

我正在从应用 1 调用 startActivityForResult 方法以从应用 2 获取结果,但应用 2 上的 setResult 方法没有返回任何内容。

应用 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】:

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

    试试这个代码 sn-p:

        setResult(Activity.RESULT_OK, resultIntent);
    
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                finish();
            }
        }, 100);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      • 2013-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多