Как вызвать метод startActivityForResult, чтобы получить результат из другого приложения - PullRequest
0 голосов
/ 05 апреля 2020

Я вызываю метод startActivityForResult из приложения 1, чтобы получить результат из приложения 2, но метод setResult в приложении 2 ничего не возвращает.

Код в приложении 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()

1 Ответ

0 голосов
/ 06 апреля 2020

Я сталкивался с этой проблемой раньше, и решение не заключалось в том, чтобы вызвать fini sh сразу после установки результата.

Попробуйте этот фрагмент кода:

    setResult(Activity.RESULT_OK, resultIntent);

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            finish();
        }
    }, 100);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...