155 lines
4.2 KiB
Plaintext
155 lines
4.2 KiB
Plaintext
package com.novelbook.android.AD;
|
||
|
||
import android.app.Activity;
|
||
import android.app.Application;
|
||
import android.content.ComponentCallbacks2;
|
||
import android.content.Intent;
|
||
import android.content.res.Configuration;
|
||
import android.os.Build;
|
||
import android.os.Bundle;
|
||
import android.util.Log;
|
||
|
||
|
||
import com.novelbook.android.Main2Activity;
|
||
import com.novelbook.android.utils.Constants;
|
||
|
||
import java.util.Date;
|
||
|
||
import static com.novelbook.android.utils.Constants.AD_TENCENT_QQ;
|
||
import static com.novelbook.android.utils.Constants.AD_TOUTIAO;
|
||
|
||
public class SplashAdManager implements Application.ActivityLifecycleCallbacks, ComponentCallbacks2 {
|
||
private boolean mIsBackground;
|
||
private static long lastAd =0;
|
||
//private static long interVal = 5000;//Constants.AD_SPLASH_INVTERVAL;
|
||
private static int pages =0;
|
||
|
||
|
||
/******
|
||
* 使用方式:在Application中直接构造即可
|
||
* @param application
|
||
*/
|
||
public SplashAdManager(Application application) {
|
||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
|
||
application.registerActivityLifecycleCallbacks(this);
|
||
application.registerComponentCallbacks(this);
|
||
}
|
||
|
||
}
|
||
|
||
/*****
|
||
* 解除绑定
|
||
*/
|
||
public void release(Application application) {
|
||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
|
||
application.unregisterActivityLifecycleCallbacks(this);
|
||
application.unregisterComponentCallbacks(this);
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
|
||
if(activity instanceof Main2Activity){
|
||
|
||
//showAd(activity);
|
||
Log.d("zzr", " 启动应用");
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public void onActivityStarted(Activity activity) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onActivityResumed(Activity activity) {
|
||
if (mIsBackground) {
|
||
mIsBackground = false;
|
||
|
||
showSplashAd(activity);
|
||
|
||
Log.d("zzr", "从广告页回到前台");
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public void onActivityPaused(Activity activity) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onActivityStopped(Activity activity) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onActivityDestroyed(Activity activity) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onTrimMemory(int level) {
|
||
//监听应用是否退到后台
|
||
if (level == TRIM_MEMORY_UI_HIDDEN) {
|
||
mIsBackground = true;
|
||
Log.i("zzr", "应用退出到后台");
|
||
}
|
||
}
|
||
|
||
|
||
@Override
|
||
public void onConfigurationChanged(Configuration newConfig) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onLowMemory() {
|
||
|
||
}
|
||
static void showInterAd(Activity activity){
|
||
clearPages();
|
||
}
|
||
static void showSplashAd(Activity activity){
|
||
if(canShowAd()) {
|
||
lastAd = new Date().getTime();
|
||
Intent intent = new Intent(activity, SplashActivity.class);
|
||
intent.putExtra(SplashActivity.EXTR_LUNCHER, false);
|
||
|
||
|
||
/* if(Constants.AD_SPLASH_SOURCE ==AD_TENCENT_QQ) {
|
||
intent = new Intent(activity, com.novelbook.android.AD.qq.SplashActivity.class);
|
||
}else if(Constants.AD_SPLASH_SOURCE ==AD_TOUTIAO){
|
||
intent = new Intent(activity, SplashActivity.class);
|
||
intent.putExtra(SplashActivity.EXTR_LUNCHER, false);
|
||
}*/
|
||
activity.startActivity(intent);
|
||
}
|
||
}
|
||
static boolean canShowAd(){
|
||
if(!Constants.AD_SETTING.isShowAdsense()){
|
||
return false;
|
||
}
|
||
long in = new Date().getTime() -lastAd;
|
||
int interVal = Constants.AD_SETTING.getSplash2().getInterval4Display()*1000;
|
||
Log.d("zzr", "canShowAd: interval is, " +in + ", canshow? "+ (in >interVal));
|
||
return in >interVal;
|
||
}
|
||
public static void setSplashTime(){ lastAd = new Date().getTime(); }
|
||
public static void clearPages(){
|
||
pages =0;
|
||
}
|
||
public static void plusPage(Activity activity){
|
||
pages++;
|
||
if(pages >Constants.AD_SETTING.getSplash2().getPageCount4Display()){
|
||
clearPages();
|
||
showSplashAd(activity);
|
||
|
||
}
|
||
}
|
||
}
|