Деятельность A запускает Намерение для Действия B, которое является селектором видео.
Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 20);
В onActivityResult мы запускаем другое действие C, пропуская выбранный путь к видео
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
if (requestCode == 20) {
Uri selectedVideoUri = data.getData();
String absPath = getRealPathFromURI(selectedVideoUri);
Intent i = new Intent(getApplicationContext(), CuttingActivity.class);
i.setData(Uri.fromFile(new File(absPath)));
startActivity(i);
}
}
}
Во время Использование, Действие А успешно открывает Действие B. Когда вы нажимаете на видео, приложение останавливается, а через пару секунд открывается черный экран. Метод onCreate для Activity C никогда не вызывается. Я думал, что действие A блокирует запуск действия C, поэтому я вызвал fini sh () примерно так:
startActivity(i);
finish();
Это решило мою проблему, но я больше не мог go вернуться к действию А так как его больше не существует, и мне нужно это сделать.
Кроме того, в другой области действие А напрямую открывает действие C, это работает, как и ожидалось, без черных экранов.
PS Активность A показывает канал с камеры. Возможно, поток пользовательского интерфейса слишком занят?
Активность A
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>