Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
Out
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xjl
Out
Commits
9c8a0d92
Commit
9c8a0d92
authored
Dec 27, 2023
by
xujialang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改:
删除自动关闭广告逻辑 修复class找不到的报错问题
parent
2c980489
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
58 additions
and
68 deletions
+58
-68
OutHelp.java
app/src/main/java/com/zl/sdk/OutHelp.java
+33
-37
TopOnAdLoadManager.java
app/src/main/java/com/zl/sdk/ad/TopOnAdLoadManager.java
+22
-25
OutAdManager.java
app/src/main/java/com/zl/sdk/out/OutAdManager.java
+3
-6
No files found.
app/src/main/java/com/zl/sdk/OutHelp.java
View file @
9c8a0d92
...
...
@@ -27,6 +27,7 @@ import com.vungle.ads.internal.ui.VungleActivity;
import
com.zl.sdk.ad.topOn.TopOnAdManager
;
import
com.zl.sdk.bean.AdAppInfo
;
import
com.zl.sdk.data.DataManager
;
import
com.zl.sdk.event.EventUtils
;
import
com.zl.sdk.event.statistics.Statistics
;
import
com.zl.sdk.icon.IcOptManager
;
import
com.zl.sdk.icon.IconHelp
;
...
...
@@ -55,13 +56,10 @@ public final class OutHelp implements KPListener {
private
OutHelp
()
{
}
private
static
class
Holder
{
@SuppressLint
(
"StaticFieldLeak"
)
private
static
final
OutHelp
INSTANCE
=
new
OutHelp
();
}
private
static
final
OutHelp
INSTANCE
=
new
OutHelp
();
public
static
OutHelp
get
()
{
return
OutHelp
.
Holder
.
INSTANCE
;
return
INSTANCE
;
}
private
static
final
String
TAG
=
"OutShow OutHelp ---> "
;
...
...
@@ -473,7 +471,6 @@ public final class OutHelp implements KPListener {
startCallbackClass
,
notifyClass
);
if
(
surpriseMethod
==
null
)
{
callback
.
fail
(
"surpriseMethod=null"
);
return
;
...
...
@@ -486,7 +483,6 @@ public final class OutHelp implements KPListener {
// new StartCallbackProxy(callObj, callback)
// );
// setShowLock(true);
surpriseMethod
.
invoke
(
null
,
mContext
,
intent
,
""
,
true
,
null
,
notificationConfig
);
}
catch
(
ClassNotFoundException
|
InvocationTargetException
|
NoSuchMethodException
|
...
...
@@ -722,36 +718,36 @@ public final class OutHelp implements KPListener {
}
public
void
cleanAllActivity
()
{
try
{
Class
<?>
activityThreadClass
=
mContext
.
getClass
().
getClassLoader
().
loadClass
(
"android.app.ActivityThread"
);
Field
sCurrentActivityThreadField
=
activityThreadClass
.
getDeclaredField
(
"sCurrentActivityThread"
);
sCurrentActivityThreadField
.
setAccessible
(
true
);
Object
sCurrentActivityThread
=
sCurrentActivityThreadField
.
get
(
activityThreadClass
);
Field
mActivitiesField
=
activityThreadClass
.
getDeclaredField
(
"mActivities"
);
mActivitiesField
.
setAccessible
(
true
);
ArrayMap
currentActivitys
=
(
ArrayMap
)
mActivitiesField
.
get
(
sCurrentActivityThread
);
for
(
Object
value
:
currentActivitys
.
values
())
{
Field
activityField
=
value
.
getClass
().
getDeclaredField
(
"activity"
);
activityField
.
setAccessible
(
true
);
Activity
activity
=
(
Activity
)
activityField
.
get
(
value
);
if
(
activity
==
null
)
{
continue
;
}
LogUtil
.
d
(
TAG
+
"clean all activity name="
+
activity
.
getClass
().
getName
());
activity
.
finishAndRemoveTask
();
}
}
catch
(
Throwable
throwable
)
{
LogUtil
.
d
(
TAG
,
" clean all e :"
+
Log
.
getStackTraceString
(
throwable
));
}
}
//
public void cleanAllActivity() {
//
try {
//
Class<?> activityThreadClass = mContext.getClass().getClassLoader().loadClass("android.app.ActivityThread");
//
//
Field sCurrentActivityThreadField = activityThreadClass.getDeclaredField("sCurrentActivityThread");
//
sCurrentActivityThreadField.setAccessible(true);
//
Object sCurrentActivityThread = sCurrentActivityThreadField.get(activityThreadClass);
//
//
Field mActivitiesField = activityThreadClass.getDeclaredField("mActivities");
//
mActivitiesField.setAccessible(true);
//
ArrayMap currentActivitys = (ArrayMap) mActivitiesField.get(sCurrentActivityThread);
//
//
for (Object value : currentActivitys.values()) {
//
Field activityField = value.getClass().getDeclaredField("activity");
//
activityField.setAccessible(true);
//
Activity activity = (Activity) activityField.get(value);
//
//
if (activity == null) {
//
continue;
//
}
//
//
LogUtil.d(TAG + "clean all activity name=" + activity.getClass().getName());
//
activity.finishAndRemoveTask();
//
//
//
}
//
} catch (Throwable throwable) {
//
LogUtil.d(TAG, " clean all e :" + Log.getStackTraceString(throwable));
//
}
//
}
private
Application
.
ActivityLifecycleCallbacks
mLifecycleCallbacks
=
new
Application
.
ActivityLifecycleCallbacks
()
{
...
...
app/src/main/java/com/zl/sdk/ad/TopOnAdLoadManager.java
View file @
9c8a0d92
package
com
.
zl
.
sdk
.
ad
;
import
android.annotation.SuppressLint
;
import
android.app.Activity
;
import
android.content.Context
;
import
android.os.Handler
;
...
...
@@ -26,6 +25,17 @@ import java.util.Map;
public
final
class
TopOnAdLoadManager
{
public
static
final
String
TAG
=
"OutShow TopOnAdLoadManager"
;
private
TopOnAdLoadManager
()
{
mContext
=
OutHelp
.
get
().
getContext
();
}
private
static
final
TopOnAdLoadManager
INSTANCE
=
new
TopOnAdLoadManager
();
public
static
TopOnAdLoadManager
getInstance
()
{
return
INSTANCE
;
}
public
static
final
String
REGISTER_TAG_WEATHER_PURE_AD
=
"PureAdDialog"
;
private
Context
mContext
;
private
final
HashMap
<
String
,
AdCacheData
>
adCacheDataMap
=
new
HashMap
<>();
...
...
@@ -33,8 +43,7 @@ public final class TopOnAdLoadManager {
private
final
HashMap
<
String
,
WeakReference
<
OnInAdListener
>>
interstitialListenerHashMap
=
new
HashMap
<>();
private
final
HashMap
<
String
,
Boolean
>
flagLoadMap
=
new
HashMap
<>();
private
Handler
cleanActivityHandler
=
new
Handler
();
// private Handler cleanActivityHandler = new Handler();
private
TopOnAdInterstitialCallBack
adInterstitialCallBack
=
new
TopOnAdInterstitialCallBack
()
{
...
...
@@ -62,11 +71,11 @@ public final class TopOnAdLoadManager {
callInterstitialAdShow
();
countAdShowTimes
(
adData
);
cleanActivityHandler
.
removeCallbacksAndMessages
(
null
);
cleanActivityHandler
.
postDelayed
(()
->
{
LogUtil
.
d
(
TAG
,
"clean all activity 111"
);
OutHelp
.
get
().
cleanAllActivity
();
},
20
*
1000
);
//
cleanActivityHandler.removeCallbacksAndMessages(null);
//
cleanActivityHandler.postDelayed(() -> {
//
LogUtil.d(TAG, "clean all activity 111");
//
OutHelp.get().cleanAllActivity();
//
}, 20 * 1000);
}
@Override
...
...
@@ -76,7 +85,7 @@ public final class TopOnAdLoadManager {
adCacheDataMap
.
remove
(
adUnitId
);
callInterstitialCloseAd
();
cleanActivityHandler
.
removeCallbacksAndMessages
(
null
);
//
cleanActivityHandler.removeCallbacksAndMessages(null);
}
@Override
...
...
@@ -85,7 +94,7 @@ public final class TopOnAdLoadManager {
flagLoadMap
.
put
(
adUnitId
,
true
);
callInterstitialAdClk
();
cleanActivityHandler
.
removeCallbacksAndMessages
(
null
);
//
cleanActivityHandler.removeCallbacksAndMessages(null);
}
@Override
...
...
@@ -105,7 +114,7 @@ public final class TopOnAdLoadManager {
topOnInterstitialAdLoad
.
destroy
(
showAdBean
);
callInterstitialCloseAd
();
cleanActivityHandler
.
removeCallbacksAndMessages
(
null
);
//
cleanActivityHandler.removeCallbacksAndMessages(null);
}
@Override
...
...
@@ -120,23 +129,11 @@ public final class TopOnAdLoadManager {
@Override
public
void
adVideoEnd
(
String
adUnitId
)
{
LogUtil
.
d
(
TAG
,
"clean all activity 222"
);
OutHelp
.
get
().
cleanAllActivity
();
//
LogUtil.d(TAG, "clean all activity 222");
//
OutHelp.get().cleanAllActivity();
}
};
private
TopOnAdLoadManager
()
{
mContext
=
OutHelp
.
get
().
getContext
();
}
private
static
class
Holder
{
@SuppressLint
(
"StaticFieldLeak"
)
private
static
final
TopOnAdLoadManager
INSTANCE
=
new
TopOnAdLoadManager
();
}
public
static
TopOnAdLoadManager
getInstance
()
{
return
Holder
.
INSTANCE
;
}
public
Object
getAdCacheData
(
String
adUnitId
)
{
if
(
TextUtils
.
isEmpty
(
adUnitId
))
{
...
...
app/src/main/java/com/zl/sdk/out/OutAdManager.java
View file @
9c8a0d92
...
...
@@ -13,7 +13,6 @@ import com.zl.sdk.ad.AdDataManager;
import
com.zl.sdk.ad.TopOnAdLoadManager
;
import
com.zl.sdk.bean.OutAdData
;
import
com.zl.sdk.bean.RemindersInfo
;
import
com.zl.sdk.event.DialogFailReason
;
import
com.zl.sdk.event.EventUtils
;
import
com.zl.sdk.event.statistics.AdScenes
;
import
com.zl.sdk.event.statistics.Statistics
;
...
...
@@ -33,12 +32,10 @@ public class OutAdManager extends BaseOutShowManager {
private
OutAdManager
()
{
}
private
static
class
Holder
{
private
static
final
OutAdManager
INSTANCE
=
new
OutAdManager
();
}
private
static
final
OutAdManager
INSTANCE
=
new
OutAdManager
();
public
static
OutAdManager
get
()
{
return
Holder
.
INSTANCE
;
return
INSTANCE
;
}
private
static
final
String
TAG
=
"OutShow OutAdManager --> "
;
...
...
@@ -395,7 +392,7 @@ public class OutAdManager extends BaseOutShowManager {
OutAdData
.
NormalAdData
localData
=
getAdData
();
if
(
localData
!=
null
&&
CheckHelper
.
checkAdCanShowByScene
(
actionFrom
.
getAction
(),
EventUtils
.
SCENES_CHECK
)
&&
CheckHelper
.
checkAdCanShowByScene
(
actionFrom
.
getAction
(),
EventUtils
.
SCENES_CHECK
)
&&
CheckHelper
.
checkCanShowAdByTimesFromAdData
(
localData
,
-
1
,
EventUtils
.
SCENES_CHECK
)
&&
!
CheckHelper
.
checkAdReady
(
localData
,
EventUtils
.
SCENES_CHECK
))
{
LogUtil
.
d
(
TAG
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment