public class MyFragment extends Fragment { @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRetainInstance(true); } @OverrIDe public voID onResume() { super.onResume(); if (?) { ... handle ... } } @OverrIDe public voID onPause() { super.onPause(); if (?) { ... handle ... } }}
我正在尝试使用一个实例保留片段来处理onResume()和onPause()期间的一些事情.我已经将它添加到主要活动中,到目前为止,除了一件事之外,它工作得很好.如果我在应用程序中输入另一个Activity,让我们说应用程序设置,这个片段仍会在屏幕翻转时执行onResume和onPause.
我需要的是一种方法来确定这个片段所附加的活动是否在前台.我尝试过像isTaskRoot这样的东西,但只要执行这些生命周期方法,它就会返回true.现在如果AndroID知道在运行onResume之后将这个片段暂停,那么必须有一种方法可以在onResume方法中检查这个吗?
解决方法 调用onPause()时,Activity变为非前景.调用onResume()时,Activity变为前景.
http://developer.android.com/guide/components/activities.html#Lifecycle
一种方法可以找到答案
Whether the activity,that this fragment is attached to,is not in the
foreground
是要在activity的onPause()方法中设置isForeground = false的活动,并在activity的onResume()方法中设置isForeground = true,并通过类似于described here的回调接口使该标志可用于片段.区别在于将片段事件推送到Activity,片段将读取活动状态(例如,SomeInterface.getForeground()).
另一种方法是定义一个公共方法MyFragment.setForeground(boolean foreground)并使该活动从其onPause()和onResume()方法调用此方法.
总结以上是内存溢出为你收集整理的android – 检查生命周期状态全部内容,希望文章能够帮你解决android – 检查生命周期状态所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)