我的应用有PagerAdapter
个Fragments
。
在主Activity
,我开始REQUEST_PICTURE_CAPTURE intent
,它可以正常工作,当它结束时调用onActivityResult()
。
在onActivityResult()
中,我有简单的代码:
m_PagerAdapter.GetTheFrag().DoStuff(..., ...);
其中m_PagerAdapter
=来自PagerAdapter
,
GetTheFrag()
= //返回派生的Fragment对象,该对象在启动Intent之前不为null。这就是问题,
DoStuff()==>永远不会被调用,因为m_PagerAdapter.GetTheFrag()
为空。
奇怪的是,有时它确实有效,有时不起作用,对于什么图片质量或任何与捕获相关的属性并不重要。
class MyPagerAdapter extends PagerAdapter {
// In PagerAdapter
public MyFrag GetTheFrag() {
return m_MyFrag;
}
// In PagerAdapter
private View getViewByID(Integer integerID) {
switch (integerID) {
case R.layout.my_frag:
if (m_MyFrag == null) {
m_MyFrag = new MyFrag(m_MainActivity);
}
return m_MyFrag.GetMyFragView();
}
return null;
}
}
// In MyFrag
public View GetMyFragView() {
return m_ThisView;
}
答案 0 :(得分:0)
最有可能的是,当相机应用程序位于前台时,您的进程已终止。作为在相机完成后将控制权返回到应用程序的一部分,为您创建了一个全新的过程。将创建一个新的活动,以及新鲜的碎片。但是,无论null
是什么,发生这种情况时都不会被您的代码填充,因此它是<img src="my/string.jpg" alt="Mountain View" style="width:1210px;height:688px">
。
如果用户离开您的应用(例如,通过HOME),您将遇到同样的问题,Android会终止您的流程,但之后用户会在离开后30分钟左右返回您的应用。因此,当您碰巧在启动第三方相机应用程序时遇到此问题时,其他地方也会出现同样的问题。