Не получить намерение от другого приложения - PullRequest
0 голосов
/ 08 января 2019

В моем первом приложении я запускаю второе со следующим кодом:

 Intent myIntent = new Intent();
            myIntent.setClassName("com.XXX.XXX", "com.XXX.XXX.Main");
            myIntent.putExtra("date", date);
            startActivityForResult(myIntent, 1);

В приложении B я отправляю некоторые дополнения обратно в приложение B:

Intent resultIntent = getIntent();
        resultIntent.putExtra("extra", value);
        setResult(Activity.RESULT_OK, resultIntent);
        finish();

В приложении A я хочу получить дополнительное значение:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);


        if (requestCode == 1) {
            if (resultCode == RESULT_OK){
                String street = data.getStringExtra("extra");
            }
        }
}

Когда я запускаю его, resultCode всегда равен 0 (RESULT_CANCELED), а данные равны нулю в onActivityResult. Что не так с моим кодом?

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Попробуйте удалить super.onActivityResult(requestCode, resultCode, data); из приведенного ниже кода.

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
        //super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1) {
            if (resultCode == RESULT_OK){
                String street = data.getStringExtra("extra");
            }
        }
}
0 голосов
/ 08 января 2019

Попробуйте изменить это

Intent resultIntent = getIntent();

setResult(Activity.RESULT_OK, resultIntent); 

К этому

Intent resultIntent = new Intent();

setResult(Activity.RESULT_OK, resultIntent); 
...