android onStop监听切到后台,但是看激励视频也会触发,有啥好的解决办法

android onStop监听切到后台,但是看激励视频也会触发,有啥好的解决办法

自己做个判断啊,都是主动事件,判断为激励视频事件时,不执行onStop

但是在看视频时他真正切到后台就 检测不到了

定义一个全局参数,如果是看视频 修改参数为true, 进入onstop前,判断参数是否为true 为true就return掉
视频播放完毕,或者中间关掉视频 在切换参数为false

就一个问题,在看视频时退到后台,监听不到onstop

激励视频没有对应的接口吗?看着视频的时候退到后台不应该是视频播放中断然后会有相应回调的吗?

应该都没有这种回调吧,只有 开始 结束,failed这几个

不会吧,我记得播放视频时,切换后台视频会自动停止,切回来在继续播放,你可以查一下

是可以自动停止啊,但是你收不到回调啊

import android.app.Activity;
import android.app.Application;
import android.os.Bundle;

/**

  • Created by Administrator on 2018/3/20.
    */

public class AppFrontBackHelper {
private OnAppStatusListener mOnAppStatusListener;

public AppFrontBackHelper() {

}

/**
 * 注册状态监听,仅在Application中使用
 *
 * @param application
 * @param listener
 */
public void register(Application application, OnAppStatusListener listener) {
    mOnAppStatusListener = listener;
    application.registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
}

public void unRegister(Application application) {
    application.unregisterActivityLifecycleCallbacks(activityLifecycleCallbacks);
}

private Application.ActivityLifecycleCallbacks activityLifecycleCallbacks = new Application.ActivityLifecycleCallbacks() {
    //打开的Activity数量统计
    private int activityStartCount = 0;

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

    }

    @Override
    public void onActivityStarted(Activity activity) {
        activityStartCount++;
        //数值从0变到1说明是从后台切到前台
        if (activityStartCount == 1) {
            //从后台切到前台
            if (mOnAppStatusListener != null) {
                mOnAppStatusListener.onFront();
            }
        }
    }

    @Override
    public void onActivityResumed(Activity activity) {

    }

    @Override
    public void onActivityPaused(Activity activity) {

    }

    @Override
    public void onActivityStopped(Activity activity) {
        activityStartCount--;
        //数值从1到0说明是从前台切到后台
        if (activityStartCount == 0) {
            //从前台切到后台
            if (mOnAppStatusListener != null) {
                mOnAppStatusListener.onBack();
            }
        }
    }

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

    }

    @Override
    public void onActivityDestroyed(Activity activity) {

    }
};

public interface OnAppStatusListener {
    void onFront();

    void onBack();
}

}

给你个关键字 ProcessLifecycleOwner

1赞