Android 实现监听应用从后台回到前台

本文介绍了一个用于监测Android应用运行状态的类AppRunningStatusCallbacks。通过跟踪主页面的onPause和onResume方法,该类能判断应用是否从前台转到后台再返回前台。这对于实现一些特定的应用行为或统计用户活跃度非常有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面主要有这样的场景:
1.桌面 -> 主页面

生命周期如下:… –(点 HOME 或者返回)–> 主页面#onPause –(重新打开应用)–> 主页面#onResume -> …

2.子页面 -> 主页面

生命周期如下:… -> 子页面#onPause -> … -> 主页面#onResume ->…

我们只要知道上一次主页面调用了 onPause,这一次主页面调用了 onResume,那么就可以确定我们应用是从其他地方回来,当然包含桌面或者其他 APP。

public class AppRunningStatusCallbacks implements Application.ActivityLifecycleCallbacks {

    private boolean mMainOnPaused = false;
    private boolean mMainOnResumed = false;

    @Override
    public void onActivityCreated(Activity activity, Bundle savedInstanceState) {

    }

    @Override
    public void onActivityStarted(Activity activity) {

    }

    @Override
    public void onActivityResumed(Activity activity) {
        mMainOnResumed = (activity instanceof MainActivity);
        if (mMainOnPaused && mMainOnResumed) {
            // 应用从桌面或者其他地方回来
            // 可以做一些回调
        }
    }

    @Override
    public void onActivityPaused(Activity activity) {
        mMainOnPaused = (activity instanceof MainActivity);
    }

    @Override
    public void onActivityStopped(Activity activity) {

    }

    @Override
    public void onActivitySaveInstanceState(Activity activity, Bundle outState) {

    }

    @Override
    public void onActivityDestroyed(Activity activity) {

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值