从活动结果意图按下后退按钮时应用程序关闭[关闭]

Posted

技术标签:

【中文标题】从活动结果意图按下后退按钮时应用程序关闭[关闭]【英文标题】:App closed when pressing back button from activity results intent [closed] 【发布时间】:2021-10-08 07:15:26 【问题描述】:

StartActivityForResults 已弃用。所以我使用 new using new getting result from activity 方法来选择 PDF 文件。一切正常,但如果意图从我的应用开始选择文件,并且如果从该意图按下后退按钮,则应用关闭。

ActivityResultLauncher<String> mGetContent = registerForActivityResult(new GetContent(),
    new ActivityResultCallback<Uri>() 
        @Override
        public void onActivityResult(Uri uri) 
            // Handle the returned Uri
        
);

@Override
public void onCreate(@Nullable savedInstanceState: Bundle) 
    // ...

    Button selectButton = findViewById(R.id.select_button);

    selectButton.setOnClickListener(new OnClickListener() 
        @Override
        public void onClick(View view) 
            // Pass in the mime type you'd like to allow the user to select
            // as the input
            mGetContent.launch("application/pdf");
        
    );

请帮忙...

【问题讨论】:

【参考方案1】:

经过一番努力,我发现如果我们在不选择任何文件的情况下按下返回按钮,活动结果将返回 null。 所以我们应该检查activity结果是否不等于null,然后进行一些操作。

ActivityResultLauncher<String> mGetContent = registerForActivityResult(new GetContent(),
    new ActivityResultCallback<Uri>() 
        @Override
        public void onActivityResult(Uri uri) 
           if(uri!=null)
            // Handle the returned Uri
           
        
);

【讨论】:

【参考方案2】:

添加到清单android:parentActivityName,后按应用打开父活动 示例:

<activity
        android:name=".FileActivity"
        android:parentActivityName=".Menu"/>

【讨论】:

以上是关于从活动结果意图按下后退按钮时应用程序关闭[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

退出活动而不关闭对话框

当按下后退按钮并打开导航抽屉时,我的应用程序关闭而不是关闭抽屉

按下后退按钮时如何退出?

应用程序在按下后退键时强制关闭

从通知中导航到父活动

应用程序在主要活动中关闭onBackPressed