Android - 图片意图后片段为空(REQUEST_PICTURE_CAPTURE)

时间:2015-05-14 12:08:46

标签: android image android-intent android-fragments null

我的应用有PagerAdapterFragments。 在主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;
}

1 个答案:

答案 0 :(得分:0)

最有可能的是,当相机应用程序位于前台时,您的进程已终止。作为在相机完成后将控制权返回到应用程序的一部分,为您创建了一个全新的过程。将创建一个新的活动,以及新鲜的碎片。但是,无论null是什么,发生这种情况时都不会被您的代码填充,因此它是<img src="my/string.jpg" alt="Mountain View" style="width:1210px;height:688px">

如果用户离开您的应用(例如,通过HOME),您将遇到同样的问题,Android会终止您的流程,但之后用户会在离开后30分钟左右返回您的应用。因此,当您碰巧在启动第三方相机应用程序时遇到此问题时,其他地方也会出现同样的问题。