android – 检查生命周期状态

android – 检查生命周期状态,第1张

概述public class MyFragment extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRetainInstance(true); } @
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 – 检查生命周期状态所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1128919.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存