#android #startactivityforresult
#Android #начальная активностьдлярезультата
Вопрос:
Когда я пытаюсь запустить другое приложение через getLaunchIntentForPackage() с помощью нового API androidx.activity.result, запускается это другое приложение, но в моем вызывающем приложении я сразу же получаю RESULT_CANCELED.
Что я делаю не так?
class MainActivity : AppCompatActivity() { private val startForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult -gt; if (result.resultCode == Activity.RESULT_OK) { findViewByIdlt;TextViewgt;(R.id.message)?.text = "RETURNED OK!! " } else if (result.resultCode == Activity.RESULT_CANCELED) { findViewByIdlt;TextViewgt;(R.id.message)?.text = "RETURNED CANCELED!!" } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main_activity) val button = findViewByIdlt;MaterialButtongt;(R.id.button) button.setOnClickListener { startForResult.launch(getMyapplicationIntent()) } } private fun getMyapplicationIntent(): Intent? { return packageManager.getLaunchIntentForPackage("com.example.myapplication") } }
с запросами в AndroidManifest:
lt;queriesgt; lt;package android:name="com.example.myapplication" /gt; lt;/queriesgt;
Комментарии:
1. Поскольку запуск
Intent
не возвращает результата, вы можете избавиться от большей части этого кода и просто вызватьstartActivity()
Intent
.2. Намерение запуска @CommonsWare не может вернуть результат? Это хорошая информация! Спасибо!