我一直在学习如何在Android中编码,但我遇到了一些问题。
现在,我真的不知道如何完成Fragment
。我的意思是,当我使用方法getActivity().finish()
时,我的Activity
应该finish()
。我一直在读它,这根本不正确。我遇到了this post:
另外,onDestroy()不是析构函数。它实际上并没有破坏它 宾语。它只是一种基于特定状态调用的方法。所以 在超类之后,你的实例仍然活着并且非常好 onDestroy()运行并返回.Android保持进程以防万一 用户想要重新启动应用程序,这就是启动阶段 快点。如果内存需要,该过程将不会执行任何操作 被收回,这个过程将被杀死
考虑一下你的应用程序后台,然后它就可以了 杀害。当你回来时,Android会记住你曾经的 在片段管理器中有片段A,B和C,因此它会重新创建 它们适合你,然后添加它们。 但是,添加到的那些 片段管理器现在不是你片段中的那些 在您的活动中列出。
就我而言,我有两个活动和两个片段。我第一次使用这个过程时效果很好。
Activity
Intent
拨打电话
Fragment
Fragment
致电第二个问题是当我按下按钮"重置"它从第二个Activity
完成我的Fragment
(所以它转到第一个Activity
)。在此之后,我重复整个过程,它实际上有效但当我尝试实现下一行以继续更新数据时:
private BroadcastReceiver estadoIAReceiver = new BroadcastReceiver() {
//Cuando cambia el estado de indoor atlas actualizo la interfaz con sus propiedades
@Override
public void onReceive(Context context, Intent intent) {
Log.i("VFragment", "Cambio estado IA");
//Ejecutar metodo de un fragment desde una actividad
infoF = (InformacionFragment) getFragmentManager().findFragmentById(R.id.posicionamiento_layout);
infoF.actualizaInfoEstadoIA();
infoF.onResume();
}
};
失败是因为getFragmentManager().findFragmentById(R.id.posicionamiento_layout);
返回null
。所以,基本上我的问题是;是infoF
尝试从第一次开始访问相同的Fragment
,但它不存在,因此返回null
?
答案 0 :(得分:0)
最后,几天前我可以找到我的错误。
解决方案很简单:
捆绑datosGuardados;
datosGuardados = savedInstanceState;
if(datosGuardados!= null) infoF =(InformacionFragment)getFragmentManager()。findFragmentById(R.id.posicionamiento_layout);