作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
所以我在 Activity A 中有这个:
startActivityForResult(Intent.createChooser(share, "Share using"), 0);
它启动一个选择器以使用 Activity B 共享某些内容。当 Activity B 完成时,我希望 Activity A 也完成:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
super.onActivityResult(requestCode, resultCode, intent);
this.finish();
}
问题是当用户在选择器打开时按下后退按钮时,Activity A 完成...我不想发生这种情况。我曾尝试覆盖 Activity A 中的 onBackPressed 方法,但这似乎在选择器打开时不适用。请帮助我。
更新:我应该提到 Activity B 不在我的控制之下,而是用户决定与之共享的任何内容。
更新 2:问题是选择器 Activity 和用户从选择器中选择的 Activity 被认为是同一 Activity ,因此当用户关闭 Activity B(用于共享文本的 Activity )时,onActivityResult 得到与选择器 Activity 相同的 resultCode 和相同的 requestCode。一定有办法解决这个问题,但我想不出。
最佳答案
你应该在调用之前测试返回的requestCode和resultCode
this.finish();
这样,如果用户在选择某项之前按下后退按钮,您的 Activity A 将不会被销毁。
关于android - 使用 createChooser Intent 从 Activity A 启动 ActivityForResult 我想完成 Activity A 但不是在用户按下后退按钮时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10953125/
我是一名优秀的程序员,十分优秀!