下面列出了android.app.Application#unregisterActivityLifecycleCallbacks ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
private static void initApp(Context context) {
Application application = (Application) mAppContext;
if (application != null) {
mAppInited = true;
if (mLifecycleCallbacks == null) {
mLifecycleCallbacks = new PXLifecycleCallbacks();
}
application
.unregisterActivityLifecycleCallbacks((ActivityLifecycleCallbacks) mLifecycleCallbacks);
application
.registerActivityLifecycleCallbacks((ActivityLifecycleCallbacks) mLifecycleCallbacks);
}
}
/**
* The core function for global activity swipe back
* @param application application
* @param factory factory to create SwipeConsumer for each Activity
* @param filter filter of activity, to determine which activity should finish via swipe motion
*/
public static void activityBack(Application application, SwipeBackConsumerFactory factory, ActivitySwipeBackFilter filter) {
if (activitySwipeBackListener == null) {
activitySwipeBackListener = new ActivitySwipeBackListener(factory, filter);
} else {
application.unregisterActivityLifecycleCallbacks(activitySwipeBackListener);
activitySwipeBackListener.mFactory = factory;
activitySwipeBackListener.mFilter = filter;
}
application.registerActivityLifecycleCallbacks(activitySwipeBackListener);
}
/**
* 解除注册 Activity 生命周期事件处理
* @param application {@link Application}
*/
private static void unregisterActivityLifecycleCallbacks(final Application application) {
if (application != null) {
try {
// 先移除旧的监听
application.unregisterActivityLifecycleCallbacks(ACTIVITY_LIFECYCLE);
} catch (Exception e) {
LogPrintUtils.eTag(TAG, e, "unregisterActivityLifecycleCallbacks");
}
}
}
/**
* 取消插件Application里的ActivityLifeCycle监听
*/
public static void unregisterActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback) {
synchronized (sActivityLifecycleCallbacks) {
sActivityLifecycleCallbacks.remove(callback);
}
// 对于已经运行的插件,需要从其Application类中反注册
for (Map.Entry<String, PluginLoadedApk> entry : sPluginsMap.entrySet()) {
PluginLoadedApk loadedApk = entry.getValue();
if (loadedApk != null && loadedApk.getPluginApplication() != null) {
Application application = loadedApk.getPluginApplication();
application.unregisterActivityLifecycleCallbacks(callback);
}
}
}
private void unregisterApp(@NonNull Application application) {
if (activityLifecycleCallbacks != null) {
application.unregisterActivityLifecycleCallbacks(activityLifecycleCallbacks);
activityLifecycleCallbacks = null;
}
application.getResources().getDisplayMetrics().setTo(adapterMetrics);
}
/**
* 全局取消所有的适配
*/
@RequiresApi(api = Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public static void unregister(@NonNull final Application application, @NonNull int... matchUnit) {
if (mActivityLifecycleCallback != null) {
application.unregisterActivityLifecycleCallbacks(mActivityLifecycleCallback);
mActivityLifecycleCallback = null;
}
for (int unit : matchUnit) {
cancelMatch(application, unit);
}
}
void stop(Application application) {
if (callbacks == null) {
return;
}
application.unregisterActivityLifecycleCallbacks(callbacks);
callbacks = null;
ThreadUtil.destoryHandler(VIEW_CANARY_HANDLER);
}
void stop(Application application) {
if (callbacks == null) {
return;
}
application.unregisterActivityLifecycleCallbacks(callbacks);
callbacks = null;
ThreadUtil.destoryHandler(IMAGE_CANARY_HANDLER);
}
public void stopUpdates(boolean clear) {
try {
if (clear) {
mFeatureCode = null;
mPostUrl = null;
}
mMessageThreadHandler.removeMessages(MESSAGE_SEND_STATE_FOR_EDITING);
final Application app = (Application) mActivity.getApplicationContext();
app.unregisterActivityLifecycleCallbacks(mLifecycleCallbacks);
} catch (Exception e) {
com.sensorsdata.analytics.android.sdk.SALog.printStackTrace(e);
}
}
void stopUpdates(boolean clear) {
try {
if (clear) {
mFeatureCode = null;
mPostUrl = null;
}
mMessageThreadHandler.removeMessages(MESSAGE_SEND_STATE_FOR_EDITING);
final Application app = (Application) mActivity.getApplicationContext();
app.unregisterActivityLifecycleCallbacks(mLifecycleCallbacks);
mVisualizedAutoTrackRunning = false;
} catch (Exception e) {
SALog.printStackTrace(e);
}
}
/**
* unregister Activity Lifecycle Callbacks
*
* @param application
*/
public void unInit(Application application) {
if (mActivityLifecycle != null) {
application.unregisterActivityLifecycleCallbacks(mActivityLifecycle);
}
}
public static void a(Application application) {
ActivityLifecycleCallbacks lVar = new l();
application.unregisterActivityLifecycleCallbacks(lVar);
application.registerActivityLifecycleCallbacks(lVar);
}
void unInit(Application app) {
mActivityList.clear();
app.unregisterActivityLifecycleCallbacks(this);
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
private static void postIcsUnregisterActivityLifecycleCallbacks(Application application, ActivityLifecycleCallbacksCompat callback) {
application.unregisterActivityLifecycleCallbacks(new ActivityLifecycleCallbacksWrapper(callback));
}
public void unegister(Application application) {
application.unregisterActivityLifecycleCallbacks(callbacks);
}
public void unregister(Application application) {
application.unregisterActivityLifecycleCallbacks(this);
}
/**
* Turns automatic instance saving on or off for all activities and fragments from the support library. This avoids
* manual calls of {@link #saveInstanceState(Object, Bundle)} and {@link #restoreInstanceState(Object, Bundle)}, instead
* the library is doing this automatically for you. It's still necessary to annotate fields with {@link State}, though.
* <br>
* <br>
* The best place to turn on this feature is in your {@link Application#onCreate()} method.
*
* @param application Your application instance.
* @param enabled Whether this feature should be enabled.
*/
/*package*/ void setEnabledForAllActivitiesAndSupportFragments(@NonNull Application application, boolean enabled) {
if (AndroidLifecycleCallbacks.INSTANCE.mEnabled != enabled) {
if (enabled) {
application.registerActivityLifecycleCallbacks(AndroidLifecycleCallbacks.INSTANCE);
} else {
application.unregisterActivityLifecycleCallbacks(AndroidLifecycleCallbacks.INSTANCE);
}
AndroidLifecycleCallbacks.INSTANCE.mEnabled = enabled;
}
}