活动未开始并在黑屏上打开

时间:2020-04-19 16:34:40

标签: android android-activity

活动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>

1 个答案:

答案 0 :(得分:0)

此问题已部分解决,一种解决方法是在延迟后为活动C创建运行意图,以使活动A有时间恢复。这可以通过处理程序或ASyncTask完成。尝试恢复活动A并同时启动活动C时发生了某些事情,这是未知的。