Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.app.Activity;
- import android.app.Application;
- import android.os.Bundle;
- import android.support.annotation.AnyThread;
- import android.support.annotation.CallSuper;
- import android.support.annotation.NonNull;
- import android.support.annotation.Nullable;
- import android.support.annotation.UiThread;
- import java.util.ArrayList;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Set;
- public final class TempApplication extends Application {
- @CallSuper
- @UiThread
- @Override
- public final void onCreate() {
- super.onCreate();
- mActivities.add(new HashSet<Activity>());
- mActivities.add(new HashSet<Activity>());
- mActivities.add(new HashSet<Activity>());
- registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
- @UiThread
- @Override
- public final void onActivityCreated(@NonNull final Activity activity, @Nullable final Bundle savedInstanceState) {
- synchronized (mActivities) {
- mActivities.get(0).add(activity);
- }
- }
- @UiThread
- @Override
- public final void onActivityStarted(@NonNull final Activity activity) {
- synchronized (mActivities) {
- mActivities.get(1).add(activity);
- }
- }
- @UiThread
- @Override
- public final void onActivityResumed(@NonNull final Activity activity) {
- synchronized (mActivities) {
- mActivities.get(2).add(activity);
- }
- }
- @UiThread
- @Override
- public final void onActivityPaused(@NonNull final Activity activity) {
- synchronized (mActivities) {
- mActivities.get(2).remove(activity);
- }
- }
- @UiThread
- @Override
- public final void onActivityStopped(@NonNull final Activity activity) {
- synchronized (mActivities) {
- mActivities.get(1).remove(activity);
- }
- }
- @UiThread
- @Override
- public final void onActivitySaveInstanceState(@NonNull final Activity activity, @Nullable final Bundle outState) {
- // No-op
- }
- @UiThread
- @Override
- public final void onActivityDestroyed(@NonNull final Activity activity) {
- synchronized (mActivities) {
- mActivities.get(0).remove(activity);
- }
- }
- });
- }
- @NonNull private final List<Set<Activity>> mActivities = new ArrayList<>(3);
- @AnyThread
- @Override
- public final void registerActivityLifecycleCallbacks(@NonNull final ActivityLifecycleCallbacks callback) {
- super.registerActivityLifecycleCallbacks(callback);
- String temp;
- for (final StackTraceElement stackTraceElement : Thread.currentThread().getStackTrace()) {
- temp = stackTraceElement.getClassName();
- if (temp != null && temp.startsWith("com.google.android.gms.cast.framework")) {
- synchronized (mActivities) {
- for (final Activity activity : mActivities.get(0)) {
- callback.onActivityCreated(activity, null);
- }
- for (final Activity activity : mActivities.get(1)) {
- callback.onActivityStarted(activity);
- }
- for (final Activity activity : mActivities.get(2)) {
- callback.onActivityResumed(activity);
- }
- }
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement