【发布时间】:2012-06-08 17:06:38
【问题描述】:
所以我在活动 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();
}
问题是当用户在选择器打开时按下后退按钮时,活动 A 完成......我不希望发生这种情况。我曾尝试覆盖 Activity A 中的 onBackPressed 方法,但这似乎在选择器打开时不适用。请帮帮我。
更新:我应该提到活动 B 不在我的控制之下,是用户决定与之共享的任何内容。
更新 2:问题是选择器活动和用户从选择器中选择的活动被认为是相同的活动,因此当用户关闭活动 B(用于共享文本的活动)时,onActivityResult 会得到与选择器活动中的结果代码和请求代码相同。必须有办法解决这个问题,但我想不出。
【问题讨论】:
-
从您的方法中删除
this.finish()。 -
为什么?我希望活动 A 在活动 B 完成时完成。
-
method si called when intent finished from your code i don't know, which type of intent/action you want to do, you created intent like createChooser so when chooser is closed, method onAcivityResult is called and你的活动 A 也是。所以这种做法是不对的。
-
你有没有想过这个问题?
-
我没有。我最终只使用了 startActivity()。不是我想要的确切行为,但不是太大的交易......至少在我的情况下。
标签: android android-activity android-intent share activity-finish