活动A为作为视频选择器的活动B启动意图。
Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 20);
在onActivityResult中,我们启动另一个Activity 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);
}
}
}
在使用过程中,活动A成功打开活动B。单击视频时,应用程序冻结,几秒钟后打开黑屏。永远不会调用ActivityC的onCreate方法。我以为活动A阻止了活动C的启动,所以我这样叫了finish()
startActivity(i);
finish();
这解决了我的问题,但是我无法再回到活动A,因为它不再存在,我必须能够做到这一点。
此外,在另一个区域中,活动A直接打开活动C,该操作可以正常工作,没有黑屏。
P.S活动A显示的是摄像机供稿。也许UI线程太忙了?
活动A
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
答案 0 :(得分:0)
此问题已部分解决,一种解决方法是在延迟后为活动C创建运行意图,以使活动A有时间恢复。这可以通过处理程序或ASyncTask完成。尝试恢复活动A并同时启动活动C时发生了某些事情,这是未知的。