使用意图共享后,片段未恢复其活动
Posted
技术标签:
【中文标题】使用意图共享后,片段未恢复其活动【英文标题】:Fragment not resumed with its activity after using intent sharing 【发布时间】:2013-09-06 21:29:33 【问题描述】:上下文:
我有一个使用Activities
和Fragments
的应用程序。
我暂停它以访问另一个,如谷歌翻译。在 GTranslate 中,我使用共享 Intent
进程通过 intent-filter
ACTION_SEND
将文本数据发送到我的应用程序。
即使第一个应用程序在后台,它当前的activity
也会重新创建。
问题是与提到的activity
关联的fragment
也没有重新创建,更烦人的没有恢复(片段的onResume
方法永远不会被调用)。
问题:
为什么在通过应用程序使用intent
时,fragments
不遵循其父活动的生命周期并且至少没有恢复?
有没有办法解决这个问题?
还是我完全错了?
【问题讨论】:
【参考方案1】:使用 Fragment Activity 而不是 Activity。
来自FragmentActiviy:
分派 onResume() 到片段。请注意,为了更好的互操作 对于较旧版本的平台,在此调用时 附加到活动的片段不会恢复。这意味着在 在某些情况下,之前的状态可能仍被保存,不允许 修改状态的碎片交易。正确互动 片段处于正确状态时,您应该覆盖 @link #onResumeFragments().
因此,在 FragmentActivity 中操作片段的正确位置是重写 onResumeFragments 方法,如下所示:
protected void onResumeFragments()
super.onResumeFragments();
// YOUR STUFF IS HERE
【讨论】:
即使在onResumeFragments
中操作片段,它也不起作用。
您正在做的一些代码 sn-ps 会有所帮助。重新阅读您的帖子后,听起来您正在使用谷歌翻译共享意图打开您的应用程序的另一个实例,副使用类似 onActivityResult()、捆绑包等来接收来自 GTranslate 的数据,因此您的原始应用程序没有t 接收数据并且原始片段也被停止。以上是关于使用意图共享后,片段未恢复其活动的主要内容,如果未能解决你的问题,请参考以下文章